Programing

git을 사용하여 마스터에서 브랜치로 커밋 이동

lottogame 2020. 12. 2. 07:42
반응형

git을 사용하여 마스터에서 브랜치로 커밋 이동


Git을 효과적으로 사용하는 방법을 배우려고 노력 중이며 다음 사례를 어떻게 해결해야하는지 (좋은 방법 / 나쁜 방법?) 궁금합니다.

마스터에 다음과 같은 커밋 체인이 있다고 가정합니다.

  • 초기 커밋
  • 커밋 1
  • 커밋 2
  • 커밋 3

그런 다음 마지막 두 커밋에서 수행 된 작업이 완전히 잘못되었음을 깨닫고 Commit 1에서 다시 시작해야합니다. 질문 :

  • 어떻게해야합니까?
  • Commit 2와 3을 별도의 분기로 이동하여 나중에 참조 할 수 있도록 보관하고 (결국 그렇게 나쁘지 않은 경우) 마스터에서 Commit 1에서 계속 작업 할 수 있습니까?

git branch tmp            # mark the current commit with a tmp branch
git reset --hard Commit1  # revert to Commit1

SO 대답 " git에서 'git reset'과 'git checkout'의 차이점은 무엇입니까? "는 이러한 종류의 작업에 대해 매우 유익합니다.

대체 텍스트

A git reset --hard HEAD~2는 동일한 작업을 수행합니다 ( Commit1먼저 SHA1을 되 찾을 필요없이 ).

Commit2and Commit3는 여전히 Git 참조 (여기서는 분기)에 의해 참조 되므로 원할 때 언제든지 되돌릴 수 있습니다 ( git checkout tmp).


실제로 Darien 은 주석에서 다음과 같이 언급합니다 (이동 Commit2Commit3다른 지점으로 이동 관련 ).

실수로 잘못된 지점에 커밋되었습니다. 이로 인해 이동할 수 있습니다.

git checkout correctbranch
git rebase tmp
git branch -d tmp

초기 분기에 재설정 된 이후이 여기서 일하는 Commit1(가) 의미, git rebase tmp모든 후 커밋 재생됩니다 Commit1(그래서 여기 Commit2Commit3) '새로운에 correctbranch'.

참고 URL : https://stackoverflow.com/questions/3719068/move-commits-from-master-onto-a-branch-using-git

반응형