특정 커밋으로 병합
는 라는새분만습니다들었를라는 새로운 .newbranch
master
가지치기이제 몇 가지 작업을 마쳤으며 병합하려고 합니다.newbranch
master
하지만, 저는 몇 가지 추가적인 변경을 했습니다.newbranch
그리고 나는 합병하고 싶습니다.newbranch
부터 네 까지 지에네번약에 master
.
저는 용한사를 요.cherry-pick
그러나 올바른 옵션을 사용하라는 메시지가 표시됩니다.
git checkout master
git cherry-pick ^^^^HEAD newbranch
깃을 사용할 수 있습니까?merge
대신에 그것을 하는 것?
git merge newbranch <commitid>
물론이죠, 안에 있습니다.master
branch 서해야할일다같습다니branch과음은에▁branch다.
git merge <commit-id>
commit-id
는 지막커해시다니입의에서 입니다.newbranch
당신이 당신의 안에 들어가고 싶은 것.master
분점.
다음을 수행하여 모든 git 명령에 대해 자세히 알아볼 수 있습니다.git help <command>
그런 경우라면git help merge
그리고 의사들은 마지막 주장이merge
는 명어는입니다.<commit>...
따라서 임의의 커밋 또는 여러 커밋에 대한 참조를 전달할 수 있습니다.하지만, 저는 후자를 직접 한 적이 없습니다.
분기를 깨끗하게 유지하려면 다음 작업을 수행할 수 있습니다.
git checkout newbranch
git branch newbranch2
git reset --hard <commit Id> # the commit at which you want to merge
git checkout master
git merge newbranch
git checkout newbranch2
이렇게 하면 새 분기가 마스터에 병합된 위치에서 종료되고 새 분기2에서 작업을 계속합니다.
병합하여 커밋
저는 이것이 약속에 병합하는 매우 신뢰할 수 있는 방법이라고 생각합니다."source" 및 "target" 분기는 수정되지 않습니다("target" 분기의 병합 제외).
분를병고가정합니다다한합기▁ 병합하려고 합니다.src
를 가지로 치다dst
특정 커밋 ID까지만 가능합니다.commitId
git checkout src
git branch temp commitId # create temporary branch at commitId
git switch dst
git merge temp # merge temp branch to dst branch
git branch -d temp # remove temp branch as we dont need it anymore.
을 현재 하여 이 합니다.<commit-id>
지점으로, 현재지로으점,로▁current▁branch,--no-commit
으로 새 커밋을
git merge --no-commit <commit-id>
git merge --continue
병합 결과 충돌이 발생한 후에만 실행할 수 있습니다.
git merge --abort
현재 충돌 해결 프로세스를 중단하고 병합 전 상태를 재구성합니다.
최근에 우리는 비슷한 문제를 겪었고 다른 방법으로 해결해야 했습니다.우리는 두 개의 지점을 최대 두 개의 커밋까지 병합해야 했는데, 이는 두 지점의 헤드가 아니었습니다.
branch A: A1 -> A2 -> A3 -> A4
branch B: B1 -> B2 -> B3 -> B4
branch C: C1 -> A2 -> B3 -> C2
예를 들어 지점 A를 A2까지, 지점 B를 B3까지 병합해야 했습니다.하지만 C 지점에는 A와 B의 체리 픽이 있었습니다.A2와 B3의 SHA를 사용했을 때 SHA가 동일한 로컬 지점 C로 인해 혼란이 발생한 것으로 보입니다.
어떤 종류의 모호성을 피하기 위해 우리는 C 지점을 로컬로 제거한 다음, 커밋 A2에서 시작하는 AA 지점을 만들었습니다.
git co A
git co SHA-of-A2
git co -b AA
그런 다음 우리는 커밋 B3에서 BB 지점을 만들었습니다.
git co B
git co SHA-of-B3
git co -b BB
그 시점에서 우리는 AA와 BB 두 지점을 합병했습니다.분기 C를 제거한 다음 작동한 커밋 대신 분기를 참조함으로써.
이것이 어느 정도 미신이었는지, 실제로 무엇이 그것을 작동하게 했는지는 저에게 분명하지 않지만, 이 "긴 접근법"이 도움이 될 수 있습니다.
특정 분기를 마스터에 병합하려면 다음 작업을 수행하십시오.
git reset --hard <commit Id>
<-- 병합할 커밋
언급URL : https://stackoverflow.com/questions/8223103/merge-up-to-a-specific-commit
'sourcecode' 카테고리의 다른 글
node.js로 보안 REST API를 구현하는 방법 (0) | 2023.05.24 |
---|---|
'break'에 해당하는 VB 키워드 (0) | 2023.05.24 |
MongoDB 실행 중이지만 셸을 사용하여 연결할 수 없음 (0) | 2023.05.24 |
Azure 함수는 어떻게 확장됩니까? (0) | 2023.05.24 |
드롭다운 목록을 만드는 방법은 무엇을 선택합니까? (0) | 2023.05.24 |