# 변경 사항이 있는 파일 변경 사항 취소하기
git checkout -- [file name]
# commit 한 개 취소하기
git reset HEAD^
git revert HEAD
# 바로 이전 commit message 수정하기
git commit --amend
# local git repository 에 remote repository 을 upstream 으로 등록하기
git remote add --track master upstream [remote github repository address]
# master branch 를 uptream 의 latest version 으로 update 시키기
git pull --ff upstream master
# 여러 commit 을 하나로 합치기(squash)
git rebase -i HEAD~[commit 개수]
# .gitconfig에서 설정해둔 editor 창이 나타난다. 기준이 될 맨 위의 한 commit 만
pick으로 두고 나머지는 squash라는 명령어로 바꿔준다. :wq 명령어를 통해 저장하고 종료한다.
그러면 또 다른 editor 창이 나타나는데, commit message 를 설정하는 editor 이다.
원하는 commit message 를 입력하고 :wq 명령어를 통해 저장하고 종료해주면 squash 가 된다.
# git history 출력하기
git reflog
# 바로 이전 commit 에 새로운 파일 변경 사항을 추가하기
git commit -C HEAD --amend
# 만약 push 를 한 상태라면 -f옵션을 통해서
push 를 해줘야 한다. commit 을 새로 생성하지 않고
변경사항을 추가하는 것처럼 보이지만 내부적으로는
새로운 커밋이 생기는 것이기 때문에 push 된 commit 과 다른 commit 이다.
# 파일의 변경 이력을 무시해서 stage 에서 임시로 제외하기
git update-index --assume-unchanged [파일명]
# 파일의 변경 이력을 무시해서 stage 에서 임시로 제외한 상황을 되돌리기
git update-index --no-assume-unchanged [파일명]
# 현재 branch 에서 변경 사항 커밋없이 저장해두기
git stash
# 저장해두었던 변경 내역 불러오기
git stash pop
# 다른 branch 의 특정 commit 가져와서 merge 하기
git cherry-pick [COMMIT_HASH_NUMBER]
# upstream 제거하기
git branch --unset-upstream
https://github.com/JaeYeopHan/Minimal_Git_command