IT

Git이 잘못된 지적로 푸시

lottoking 2020. 9. 12. 10:24
반응형

Git이 잘못된 지적로 푸시


git로 작업하고 '커밋'하고 '푸시'한 후 잘못된 브랜치를 사용하고 있음 깨달았습니다!

이제 나는 wrong_branch의 변경 사항을 어떤 식 으로든 제거하고 right_branch의 변경 사항을 커밋하고 푸시해야합니다.

이를 수행하는 가장 좋은 (그리고 간단한) 방법은 무엇입니까?

감사합니다


분기로 전환 해당하고 git loggit revert해당 커밋을 개별적으로 확인하십시오 . 그런 다음 원하는 분기로 다시 전환 git cherry-pick하면 git refs에서 특정 커밋을 선택하고 올바른 분기에 병합하는 데 사용할 수 있습니다 .

git checkout wrong_branch
git revert commitsha1
git revert commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2

커밋이 함께 그룹화되고 더티 커밋 후에 푸시 된 커밋이없는 경우를 사용 git reset하여 커밋 전 상태로 잘못된 브랜치를 다음 다시 사용 git cherry-pick하여 커밋을 올바른 브랜치로 있습니다.

git checkout wrong_branch
git reset commitsha3 #commit just before commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2


가장 간단한 방법은 git rebase. 해당 설정이 가정합니다.

A -- B -- C -- C1 -- C2 # right branch
          \
           \-- D -- C3 -- C4 # wrong branch

변경 C3, C4를 오른쪽으로 이동합니다.

git checkout -b new_wrong_branch D
git checkout wrong_branch
git rebase D --onto right_branch
git checkout right_branch
git merge right_branch wrong_branch
git branch -d wrong_branch
git branch rename new_wrong_branch wrong_branch

이제 설정은

A -- B -- C -- C1 -- C2 -- C3 -- C4 # right_branch
          \
           \ -- D # wrong_branch

그런 다음 강제로 결과를 푸시해야합니다 (아직 원격 저장소와 동기화하지 않을 경우).

git push -f remote:right_branch

Dhruva의 답변에 추가되는 약간의 지름길

git checkout wrong_branch
git revert commitsha1

git checkout right_branch
git push right_branch

git checkout wrong_branch
git reset commitsha2 #commit just before commitsha1
git push wrong_branch -f

참고 URL : https://stackoverflow.com/questions/6465699/git-push-to-wrong-branch

반응형