git log
Commit 히스토리를 시간순으로 보여준다.
가장 최근에 commit 한 것이 가장 위에 나온다.
git log --stat
각 commit 의 통계 정보를 조회 할 수 있다.
git log --pretty=oneline
--pretty 옵션은, 기본 형식 이외에 여러가지 중에 하나를 선택할 수 있다.
oneline은 각 commit을 하나의 라인으로 보여준다.
git log --pretty=format"%h - %an, %ar : %s"
--pretty=format 옵션은, 나만의 format으로 결과를 출력하고 싶을 때 사용한다.
저자(Author) : 원래 작업을 수행한 원작자
커미터(Committer) : 마지막으로 이 작업을 적용한 사람.
git log --pretty=format"%h %s" --graph
이 명령은 branch 와 merge 히스토리를 보여주는 아스키 그래프를 출력함다.
git log --since=2.weeks
이 옵션은 다양한 형식을 지원한다. "2008-1-15" 같이 정확한 날짜도 사용할 수 있다.
git log --author="Ben Chang"
--author 옵션으로 특정 저자의 commit 만 볼 수도 있다.
git log --author="Ben Chang" --grep="delete" --all-match
--author 옵션을 사용하여 "Ben Chang" 이 작성한 것을 찾고 , --grep 옵션으로 "delete" 를 포함하는 것만 찾고
--all-match 옵션으로 위 두 조건을 모두 만족하는 것만 찾는다.
git commit --amend (완료한 commit 을 수정하기)
이 명령은 Staging Area를 사용하여 commit 한다. 만약 마지막으로 commit하고 나서 수정한것이 없다면, 조금 전에 한 commit과 모든것이 같다. 이 때믄 커밋 메시지만 수정한다.
Commit을 했는데 Stage 하는 것을 깜빡하고 빠트린 파일이 있다면 아래와 같이 고칠 수 있다.
"myoldtxt.txt" 는 add 했는데, "mynewtxt.txt" 는 staging 하는 것을 깜빡하고, commit 한경우 아래와 같다.
"mynewtxt.txt" 를 add 하고 , git commit -amend 를 실행하면 아래와 같이 진행 된다.
살펴보면 commit ID는 변경되지만, 직전 commit ID 자체가 사라지는듯 하다.
commit date 는 기존에 commit 한 시간으로 남아 있으며 변경이 없다.
commit message 는 update 되었다.
git reset HEAD my3rdtxt.txt (File을 Unstage 로 변경하기)
"my3rdtxt.txt" 파일을 신규로 working directory에 생성하고, git add * 명령으로 해당 file을 staging area에 집어 넣는다. git status 명령을 토앻, 해당 file이 "Changes to be committed" 즉 staging area에 있다는 것을 알 수 있다.
"my3rdtxt.txt" 를 staging area 에서 빼내어 unstaged 상태로 변경 할 수 있다. git status 명령을 통해 해당 file이 "Untracked file" 즉 unstaged file이라는 것을 확인 할 수 있다.
git checkout -- myoldtxt.txt (Modified 파일 되돌리기)
"myoldtxt.txt" 는 이미 commited 되어 있다. 이제 Working directory에 있는 myoldtxt.txt를 수정해 본다. 그리고 git status 명령을 치면, 해당 file이 수정 되었다고 나온다.
원래 데로 라면 수정 된것을 add 하고 commit 하는 것이 맞지만, 이번에는 잘못 수정한 경우이다. 그래서 이미 commit 된 file을 로 되돌리기를 수행 하려고한다.
이제 이미 commit 했던 "myoldtxt.txt" 이 working directory 에 있는 ""myoldtxt.txt"를 덥어 쓴다. Working directory 에서 수정했던 내용들은 사라진다.
'git' 카테고리의 다른 글
Pro Git - 브랜치 워크플로, 브랜치 관리, 브랜치 추적 (0) | 2021.02.22 |
---|---|
Git 필수 명령어 요약 (0) | 2021.02.16 |
[책] Pro Git 2판, review [5] - branch (0) | 2021.02.15 |
[책] Pro Git 2판, review [2] (0) | 2021.02.10 |
[책] Pro Git 2판, review [1] (0) | 2021.02.10 |