git shortlog
기여한 사람과 기여 횟수, 커밋 메시지를 볼 수 있다.
git shortlog -sn
기여한 사람과 횟수만 볼 수 있다.
git shortlog -sn | nl
위에거를 터미널에 출력해준다.
git shortlog -- 파일 이름 또는 폴더 이름
해당 파일/폴더 기여자의 해당파일 커밋 로그를 보여줌
git log
전체 커밋 로그 보여줌
git log --oneline
커밋 로그를 한줄로 보여줌
wc -l
커밋 몇번 했는지 궁금할 때 체크
git show 커밋 아이디
커밋 내용 상세 조회
grep "diff"
파일 뭐 수정했는지 볼 수 있음
--no-merges
머지 커밋(소스 수정이 없는 커밋) 빼고 볼 수 있음
--reverse
커밋 로그 역순 정렬해서 보여줘
git reset HEAD 파일 이름
$ git clean -f
// 디렉터리를 제외한 파일들만 삭제
$ git clean -f -d
// 디렉터리까지 삭제
$ git clean -f -d -x
// ignored 된 파일까지 삭제
commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
$ git reset --soft HEAD^
commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
$ git reset --mixed HEAD^ // 기본 옵션
$ git reset HEAD^ // 위와 동일
$ git reset HEAD~2 // 마지막 2개의 commit을 취소
commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git reset --hard HEAD^
git commit --amend
이 명령을 사용하면 자신의 local의 내용을 remote에 강제로 덮어쓰기를 하는 것이기 때문에 주의해야 한다.
가장 최근의 commit을 취소한다.
$ git reset HEAD^// 가장 최근의 commit을 취소 (기본 옵션: --mixed)
원하는 시점으로 워킹 디렉터리를 되돌린다.
// Reflog(브랜치와 HEAD가 지난 몇 달 동안에 가리켰었던 커밋) 목록 확인$ git reflog 또는 $ git log -g
// 원하는 시점으로 워킹 디렉터리를 되돌린다.$ git reset HEAD@{number} 또는 $ git reset [commit id]
되돌려진 상태에서 다시 commit을 한다.
$ git commit -m "Write commit messages"
원격 저장소에 강제로 push 한다.
$ git push -f origin [branch name]
내가 담당한 기능을 개발하기 위해 브랜치를 만든다.
git checkout -b [브랜치명]
b [브랜치명]
: 브랜치를 생성한다.checkout [브랜치명]
: 해당 브랜치로 이동한다.git branch
: 존재하는 브랜치 확인.git diff
git checkout -- 파일 명
local git 저장소에서 최신 히스토리 상태를 가져온다
base란? 내가 작업하기 전의 최신 히스토리를 말한다.
내 PR이 Merge되기 전, 다른 사람의 PR이 먼저 프로젝트에 반영될 수 있다. 그러면 내 PR base에 팀프로젝트의 최신 히스토리를 업데이트 하는 작업이 필요하다.
즉 base를 업데이트 하는 작업을 해야하고 이를 rebase
라고 부른다.
git 명령어는 fetch
를 사용한다.
# 1. 공식 upstream 저장소에서 최신 commit history 가져오기
$ git fetch upstream master
# 2. 최신 commit history 기준으로 베이스 갱신 (rebase)
$ git rebase upstream/master
# 3. Fork 한 저장소(GitHub)도 수정하기 (PR 자동 갱신)
$ git push --force origin fix-mnist
fetch
를 사용한다.rebase
명령어로 적용한다.force push
한다. 이때 PR은 자동 갱신된다.git rebase 이전 브랜치명
git checkout 이전 브랜치명
git pull --rebase=preserve
git merge 작업한 브랜치명
git push origin -d 작업한 브랜치 && git branch -d 작업한 브랜치