git으로 같이 협업을 하다보면 git push를 입력했을 때 한번에 push가 안되어 진땀 뺀 기억이 있을 것이다. 이 때 어떻게 대체하면 좋을까?
침착하고 우아하게 push가 안되는 상황을 대처해보자.
가장 왼쪽의 main에서 나랑 초록 동그래미가 같이 작업을 한다.
초록 동그래미가 너무 작업을 잘해서, 나보다 후에 PR을 올렸음에도 main에 먼저 반영이 됐다.
근데 내가 깜빡하고 main의 최신 상태로 rebase를 해버린거다.
여기서 강제로 origin의 feature/#1-first의 값을 가져오는 방법은 다음과 같다.
fetch 명령어로 origin 속 브랜치의 정보를 가져온다.
git reset —hard
명령어로 강제로 덮어 씌운다.
git fetch origin feature/#1-first
git reset --hard origin/feature/#1-first
이렇게 되면 rebase 이후 커밋한 내역이 모두 사라지므로, 하나하나 reset과 stash를 하며 저장하는 것을 추천한다.
git reset HEAD^
: 한 커밋씩 리셋하기git stash -m “메시지”
: 한 단위 당 임시 저장똑같은 동작을 gitkraken에서 gui 기반으로 쉽게 사용 가능하다.