자주 사용하게 되는 Git 명령어
그냥 내가 자주 사용하는 git 명령어를 좀 정리해보려 한다.
status
1 | git status |
현재 working directory 상황을 보여준다. index에 올라가 있는 파일 목록. index에 올라가있진 않지만 수정된 파일 목록. 그리고 추가/삭제 된 파일 목록 등.
diff
1 | git diff |
기본적으로는 현재 working directory의 수정된 상황(아직 index에 add하지 않은 수정 사항)을 보여준다. 빨간색은 삭제된 것이고, 초록색은 추가된 것. 새로 생성한 파일은 당연스럽게도 보여주지 않는다. 파일 전체가 수정된 사항이니까.
options
- –cached
git diff –cached 명령어를 사용하면 working directory와 index와의 차이가 아니라 index에 올라가있는 파일과 마지막 commit과의 차이를 보여준다. - –word-diff
원래 뒤에 모드를 더 써야 하는데 그냥 이렇게만 쓰면 plain으로 들어간다. 변경 사항을 전체 라인으로 보여주는 게 아니라 단어 별로 [-removed-] 나 {+added+} 형태로 조금 상세하게 보여준다. - –color-words
바로 위 옵션과 비슷하게 단어별로 수정 사항을 색으로 표현해서 보여준다. 차이는 [-removed-]나 {+added+}같은 표식이 없다. –word-diff=color 에 무슨 –word-diff-regex=를 더한거라고는 하는데…
add
1 | git add |
수정된 파일을 index에 추가할 때 쓴다. 보통 뒤에 .
붙여서 쓰는데 그러면 현재 수정된 파일을 몽땅 index로 추가한다.
options
- – FileName
FileName 이라는 특정 파일을 추가 - – 추가하고 싶은 파일/폴더명을 입력하는데 너무 길다! 혹은 이름이 비슷한 여러 파일을 넣고 싶다! * 를 wildcard로 인식하기 때문에 * 쓰면 그냥 문자로 인식해서 맞는거 다 넣어줌. checkout 시에도 마찬가지로 * 동작.
commit
1 | git commit |
index에 올라가 있는 파일들을 commit 한다.
options
- -m “commit message”
commit message까지 한꺼번에 입력 가능 - –amend
아직 push 안 했을 때 파일을 더 추가해야 한다거나 commit message를 수정해야 한다거나 할 때 이용한다. (파일을 추가하고자 한다면 미리 add하여 index에 올려놓고 이 명령어 사용)
log
1 | git log |
log를 쭉 보여줌
options
- – fileName
해당 파일의 log를 쭉 보여준다. - | grep “nillk”
그냥 파이프라인. commit message 안에 nillk를 포함하는 commit을 찾아서 보여준다.
log 를 트리 형태로 보여주는 alias (~/.gitconfig에 추가)1
2[alias]
lg = log --graph --name-status --abbrev-commit --decorate --format=format:'%C(bold red)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''%C(bold white)%s%C(reset) %C(dim white)- %an%C(reset)%n' --all
show
1 | git show <hash> |
해당 hash commit 내용을 보여준다.
options
- –color-words
여기도 diff때와 마찬가지로 color-words옵션이 동작한다.
…
막상 정리하려니 잘 생각이 안 나서 여기까지만