Revert
Rename
$ git mv {변경전filename} {변경후filename}
- 이름만 변경되어 파일의 history를 남길 수 있음
❌ mv 명령어만 사용시 파일의 history가 삭제될 수 있으므로 사용하지말기
Undoing
$ git checkout -- .
$ git checkout -- {filename}
README.md 파일 변경 후 변경 전 README.md로 Undoing 한다.
Unstaging
$ git reset HEAD {filename}
Reset Commit
$ git revert --no-commit HEAD~3..
$ git commit
$ git push origin <branch>
- 잘못하기 전 과거로 돌아가 최신을 유지하면서 되돌렸다는 이력을 commit으로 남겨 모든 팀원이 이 사항을 공유하고 주지시킬 수 있음.
- commit을 따로 안할땐 --no-edit
- merge commit을 되돌릴 땐 -m($git revert -m {1 or 2} {merge commit id})
❌ 이렇게 사용하지 말 것
$ git reset --hard HEAD~3
$ git push -f origin <branch>
- 협업 시 다른 cloned repo에 존재하던 commit log로 인해 파일이 살아나거나, 과거 이력이 깔끔히 사라져 commit log tracking이 힘들어짐.
- solution: 잘못한 이력도 commit으로 박제하고 수정한 이력을 남기자!