명령어로 git을 사용하는 것은 복잡하지만, gui를 사용하지 않고 진행 가능하다. 또한 더욱 다양한 기능이 존재한다.
gitbash : 명령어를 통해 깃을 제어하는 프로그램 (실행하면 콘솔창이 뜸). 설치 후 'git' 을 치면 성공적으로 설치가 됐을 경우 깃 관련 정보가 조회된다.
ls -al
git init : 저장소 초기화
git : git repository
cd .. 부모디렉토리 조회
.git 이라는 디렉토리를 지우면 버전정보가 기록된 것이 모두 사라진다. (삭제하지 않도록 유의)
Working tree : 수정한 전체 파일들.
Staging Area : 버전이 만들어져야 할때 변경된 파일 10개중 2개만 저장하고 싶을 때 이 곳에 올려둔다.
Repository(저장소) : 버전이 저장 되어지는 곳.
cat 파일명 : 해당파일의정보를 보여주는 명령어
git status 깃의 상태 조회 : untracked files / Changes not staged for commit / Changes to be committed
git add 파일명 : working tree의 수정사항을 staging area에 올리라는 명령어
git commit -m "Message 1"
git log : show version
Git은 모든 파일을 자동으로 tracked 하지 않음. 사용자가 직접 설정을 해줘야한다.
버전관리 되고 있건 아니건 Staging area에 올리기 위해서는 add 작업을 해줘야 한다.
git log --stat
버전간의 차이점 비교하는 명령어
git diff : show changes
git reset --hard : 마지막 버전에서 이전 상태로 돌리는 명령어
git log -p : 커밋시 어떤 파일에, 어떤 데이터가 추가/삭제 되었는지 조회
git log를 통해 커밋시점의 해쉬코드를 참조.
git checkout 해쉬코드 : 해당 커밋 시점으로 되돌리라는 명령어. 하지만 이후 커밋이 지워진 것은 아니다.
git checkout master : master 브랜치가 있는 시점으로 커밋이 되돌아감.
git add src. src폴더 밑에 있는 파일을 한꺼번에 staging에 올림 (untracked file인 상태에서는 자동으로 add되지 않음)
git commit -m "message" : -m이라는 명령어는 커밋메시지를 콘솔창을 통해서 직접 입력하겠다를 의미
git config --global core.editor "에디터경로" 실행하고싶은 디폴트의 깃에디터 설정하는 명령어
Reset
git log --hard 커밋해쉬코드 : 이 버전으로 리셋하겠다. 내가 수정하고 있던것도 삭제. 가장 강력하게 진행.
도움말이 필요하면 git reset --help
다른 사람과 협업하는 중이라면 reset을 사용하게 되면 엉키는 문제가 발생할 수 있으므로 reset을 쓰지않는 게 좋다.
Revert
기존의 커밋은 그대로 두되, 상태를 되돌리기 한 것
되돌리고 싶은 커밋시점 C4- C3- C2- C1
git revert C4로 작성할 경우 C4를 되돌리기하여 C3의 상태로 변환을 시켜준 것.
반드시 역순으로 순서대로 진행을 해야 충돌이 나지 않는다.
# 생활코딩 git 강의 참조 : https://www.opentutorials.org/course/3839
'Dev > Git' 카테고리의 다른 글
[Git] push error - unpack failed: index-pack abnormal exit (0) | 2019.12.31 |
---|---|
[Git] fetch 후 에러(Failed to lock refs/heads/master) (0) | 2019.06.10 |
[Git] cherry-pick, Interactive Rebase (0) | 2019.02.14 |
[Git] Head, Relative Ref, reset, revert (0) | 2019.02.12 |
[Git] 기본 명령어 (commit, branch, checkout, merge, rebase) (0) | 2019.02.11 |