반응형
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을 되 찾을 필요없이 ).
Commit2
and Commit3
는 여전히 Git 참조 (여기서는 분기)에 의해 참조 되므로 원할 때 언제든지 되돌릴 수 있습니다 ( git checkout tmp
).
실제로 Darien 은 주석에서 다음과 같이 언급합니다 (이동 Commit2
및 Commit3
다른 지점으로 이동 관련 ).
실수로 잘못된 지점에 커밋되었습니다. 이로 인해 이동할 수 있습니다.
git checkout correctbranch
git rebase tmp
git branch -d tmp
초기 분기에 재설정 된 이후이 여기서 일하는 Commit1
(가) 의미, git rebase tmp
모든 후 커밋 재생됩니다 Commit1
(그래서 여기 Commit2
와 Commit3
) '새로운에 correctbranch
'.
참고 URL : https://stackoverflow.com/questions/3719068/move-commits-from-master-onto-a-branch-using-git
반응형
'Programing' 카테고리의 다른 글
시간 초과 WCF 서비스 (0) | 2020.12.02 |
---|---|
Websocket 서버 : 웹 소켓의 onopen 함수가 호출되지 않습니다. (0) | 2020.12.02 |
Interlocked.Exchange가 부울 유형을 지원하지 않는 이유는 무엇입니까? (0) | 2020.12.02 |
Datomic은 언제 사용해야합니까? (0) | 2020.12.02 |
MismatchSenderId를받는 FCM (0) | 2020.12.02 |