"git pull" vs "git pull --rebase"
문제 : pull 할때 merge가 되면서 히스토리가 남게 된다. git tree를 깔끔하게 관리하기위해서 현재 프로젝트에서는 남기지 않는다고 한다.
방법 : 발생하는 이유는 내가 해당 브런치 원격에 push하지 않은 commit이 있을 때 pull을 받게되면 생성된다.
git pull —rebase
을 사용해서 pull을 받으면 된다.해결: git pull —rebase
이용
방법1 > 히스토리 없이 로컬에서 커밋 되돌린 후 강제 푸시
git reset —hard HEAD~1 / git reset —hard ‘커밋id’
: 커밋 되돌리기
git push -f origin [원격 브런치]
: 강제 푸시
*주의 사항 : 협업할때 해당 원격에 올린 커밋을 다른 팀원이 받아가게되면 이전 소스가 그대로 원복 될 수 있다.
방법 2> 히스토리 남기고 되돌리기
git revert —hard ‘커밋id'
: 하나의 커밋만 revert
git revert --no-commit HEAD~3
: 다수의 커밋을 revert
git commit -m 'Revert: "Commit 문구"
: Revert 했다는 커밋메시지 작성 후 PUSH