git 브랜치 A에서 작업해야 할 코드를 실수로 B에서 작업했다.
백업용 브랜치를 새로 만들어 내용을 임시로 커밋한 다음 A로 다시 푸시하는 방법을 사용했다.
이 방법이 최선인지는 모르겠지만, 급하게 브랜치를 바꿨다가 작업 내용이 반영되지 않거나, 브랜치들을 머지시키는 것 보다는 나은 것 같다.
1. 현재 브랜치(B)에서 변경 내용 커밋:
git add .
git commit -m "현재 브랜치에서의 변경 내용"
2. 현재 브랜치에서 변경 내용을 백업 브랜치로 푸시:
git branch 백업브랜치(BackUp)
git push origin 백업브랜치(BackUp)
3. 본래의 브랜치로 이동:
git checkout A
4. 현재 브랜치(B) 브랜치의 변경 내용을 되돌리기:
git reset --hard HEAD^ # 하나 전의 커밋으로 되돌리기
만약 원격 저장소에 이미 푸시한 상태라면 다음과 같이 강제 푸시가 필요할 수 있다.
⚠️ 경고: 강제 푸시는 해당 브랜치의 변경 내용이 손실될 수 있으므로 협업 중에는 해당 브랜치의 담당자와 미리 상의 후 사용해야 한다.
git push origin A --force
충돌 발생 시 충돌을 해결한 후 해당 명령어를 사용하여 계속 진행할 수 있다.
git cherry-pick --continue
6. 변경 내용 푸시:
git push origin 본래의 브랜치(A)
개인 프로젝트 시에는 참고할 수 있는 명령어이지만 협업 시에는 반영하기 어려운 해결 방법인 것 같다.
협업 시에는 미리 해당 담당자와 상의하거나 다른 해결 방안을 모색하는 것이 좋을 것 같다.