반응형
특정 커밋을 다른 분기 git에 기반하도록 이동하는 방법은 무엇입니까?
상황:
- 마스터가 X에 있음
- Quickfix1은 X + 2 커밋입니다.
다음과 같은 경우:
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
그 후 저는 퀵픽스2 작업을 시작했는데 실수로 퀵픽스1을 마스터가 아닌 복사할 소스 브랜치로 가져갔습니다.이제 Quickfix2는 X + 2 커밋 + 2 관련 커밋입니다.
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
\
q2a--q2b (quickfix2 HEAD)
이제 저는 퀵픽스1에 속하는 2개의 커밋 없이 퀵픽스2를 가진 브랜치를 원합니다.
q2a'--q2b' (quickfix2 HEAD)
/
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
저는 퀵픽스2의 특정 리비전에서 패치를 생성하려고 했지만, 패치가 커밋 기록을 보존하지 않습니다.내 커밋 기록을 저장하지만, 빠른 수정 1에 변경 사항이 없는 분기를 가질 수 있는 방법이 있습니까?
이는 다음과 같은 전형적인 사례입니다.
# let's go to current master (X, where quickfix2 should begin)
git checkout master
# replay every commit *after* quickfix1 up to quickfix2 HEAD.
git rebase --onto master quickfix1 quickfix2
그래서 당신은 가야 합니다.
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
\
q2a--q2b (quickfix2 HEAD)
대상:
q2a'--q2b' (new quickfix2 HEAD)
/
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
이 작업은 깨끗한 작업 트리에서 수행하는 것이 가장 좋습니다.
참고: 특히 Git 2.10 이후.
사용할 수 있습니다.git cherry-pick
복사할 커밋을 선택하기만 하면 됩니다.
가장 좋은 방법은 마스터에서 분기를 만든 다음 해당 분기를 사용하는 것입니다.git cherry-pick
당신이 원하는 퀵픽스2의 커밋 2개에.
여러분이 할 수 있는 가장 간단한 것은 체리를 따는 것입니다.그것은 그것과 같은 일을 합니다.rebase --onto
하지만 눈에는 더 쉽습니다 :)
git cherry-pick quickfix1..quickfix2
제 생각엔 다음과 같습니다.
git checkout master
git checkout -b good_quickfix2
git cherry-pick quickfix2^
git cherry-pick quickfix2
// on your branch that holds the commit you want to pass
$ git log
// copy the commit hash found
$ git checkout [branch that will copy the commit]
$ git reset --hard [hash of the commit you want to copy from the other branch]
// remove the [brackets]
여기에 설명이 포함된 다른 유용한 명령:깃 가이드
언급URL : https://stackoverflow.com/questions/2369426/how-to-move-certain-commits-to-be-based-on-another-branch-in-git
반응형
'IT' 카테고리의 다른 글
SQL Server를 사용하여 CREATE TABLE 문 내에 클러스터되지 않은 고유하지 않은 인덱스 생성 (0) | 2023.05.28 |
---|---|
어레이의 모든 요소가 조건과 일치하는지 확인합니다. (0) | 2023.05.28 |
WPF용 Visual Studio 디자이너를 수동으로 다시 로드하는 방법 (0) | 2023.05.28 |
원격 저장소에서 기록 커밋 (0) | 2023.05.28 |
파일의 시작 부분에 텍스트를 삽입하는 방법은 무엇입니까? (0) | 2023.05.28 |