[Git] Git 명령어
'git diff'를 통해 이전 버전과의 차이점을 확인할 수 있다. git log에서 (head) 표시가 되어 있는 것이 현재 작업하는 버전이다.
'git reset --hard 해당commit소스'는, 작업한 것들을 리셋하여 해당 버전으로 돌려준다. 이를테면, 작업 순서대로 1, 2, 3, 4의 버전이 있을 때, 'git reset --hard 2의commit소스'를 실행한다면, 3, 4 버전이 삭제되고 2를 가리킨다. log로 확인해 보면 1, 2만이 남는다.
한편, 'git revert 해당commit소스'는 해당 소스에서 이전 버전으로 되돌아간다. 이를테면, 작업 순서대로 1, 2, 3, 4 버전이 있을 때, 4를 리버트한다면('git revert 4의commit소스') 이전 버전인 3으로 되돌아간다. 기본 에디터에 리버트 사유를 작성하고 log로 확인해 보면, 1, 2, 3, 4, 3이 확인될 것이다. 또한, 충돌을 방지하려면, 초기 버전을 리버트할 때에는 최신 버전부터 리버트할 해당 버전까지 전부 순차적으로 리버트해야 한다. 이를테면, 작업 순서대로 1, 2, 3, 4 버전이 있을 때, 2를 리버트하기 위해서는 4, 3, 2를 순차적으로 리버트해야 하며, 그렇지 않을 경우 충돌이 일어난다. 왜냐하면, 리버트는 해당 버전 이후의 모든 변화를 되돌리는 것이 아니고, 해당 버전에서 일어난 변화만을 되돌리기 때문이다.
'git checkout 해당commit소스' 명령을 통해 해당 커밋이 이루어졌을 때의 버전으로 이동(head 이동)할 수 있다. 또, 'git checkout master' 명령을 통해 최신 버전으로 이동할 수 있다.
'git log -p'로 로그의 상세를 확인할 수 있으며, q를 통해 여기서 빠져나올 수 있다.
워킹 트리에 있는 파일들을 스테이징 에어리어로 올릴 때, 'git add .' 명령으로 현재 디렉토리에 있는 모든 파일을 올릴 수 있으며, 'git add 디렉토리명' 명령으로 해당 디렉토리에 있는 모든 파일을 올릴 수도 있다.
또한, 'git commit -am "버전명"' 명령을 통해, 워킹 트리에 있는 파일을 한 번에 커밋할 수도 있다. 이 경우, untracked files는 자동으로 추가되지 않는데, 커밋을 원하지 않는 파일까지 한 번에 커밋되는 것을 막기 위함이다. 즉, 최소 한 번은 add를 통해 스테이징 에어리어에 올라갔던 파일들에만 적용할 수 있다.
'git commit' 뒤에 아무 명령어도 추가하지 않으면 기본 에디터를 통해 커밋 메시지를 입력하여 커밋할 수 있다.