Git을 사용하여 자동 병합을 방지하려면 어떻게해야합니까?
Git에서 자동 병합을 수행하지 않고 로컬 분기를 마스터 분기에 병합하려고합니다. 마스터에 병합하고 싶은 것을 "손으로 선택"하고 싶습니다.
Git의 difftool 명령을 사용하면 마스터 브랜치에 추가 할 항목을 비교하고 선택할 수 있습니다. 그러나 병합을 수행하면 Git이 자동 병합을 수행하기 때문에 이전에 선택한 것을 잃게됩니다. 병합 전에 마스터에 변경 사항을 적용 할 수 있지만 그렇게하는 것은 부자연스러워 보입니다.
그리고 Git의 mergetool은 병합으로 인한 충돌이있을 때만 사용할 수 있습니다. 그러나 Git이 자동 병합을 수행하면 일반적으로 충돌이 없으므로 mergetool 명령을 실행할 수 없습니다.
최신 정보:
나는 내가 달성하려는 것이 나쁜 습관이거나 불가능하다고 생각하기 시작했습니다. 즉, 토픽 브랜치를 병합하고 diffing에서 필요한 것만 병합합니다. 또한 이것을 역사에 반영했습니다. 어쨌든 내가 게시 한 질문은 Git을 실험 할 때 떠올랐다.
병합 프로세스에 관여하는 Git을 우회하고 병합 할 각 수정 된 파일의 각 줄을 직접 선택하려고합니다. 이것은 git cherry-pick. 어느 쪽도 git merge --no-commit도움 이되지 않습니다 . 다음을 수행해야합니다.
$ git checkout master
$ git difftool -t kdiff3 local-branch HEAD
에서 KDiff3창 왼쪽은 ( A) 당신입니다 로컬 지점 과 오른쪽은 ( B) 당신입니다 현재 지점 (마스터) .
메뉴 Merge | Merge Current File에서 선택하십시오 (또는 동일한 제목의 화려한 다이아몬드 모양 아이콘을 누르십시오).
그러면 각 파일에 대한 차이점과 충돌 (있는 경우)이 표시됩니다. 그리고 왼쪽 또는 오른쪽 ( A또는 B) 또는 둘 다를 선택하거나 병합 된 파일을 수동으로 조정할 수 있습니다.
또 다른 메모에서 워크 플로에 더 큰 문제가 있다는 내용이 있습니다.
git merge --no-commit --no-ff <local-branch>
해.
실행하면의 변경 사항 local-branch이 적용되지만 아직 준비되지는 않습니다.
그런 다음 적용 할 변경 사항을 확인하고 모든 변경 사항을 적용하려는 경우
git commit -a
그렇지 않으면 가져올 파일을 선택하고 스테이징 한 다음 git add마지막으로 git commit. 그런 다음 git checkout -- filename.
자동 병합을 신뢰하지 않는 경우이 작업을 원할 수 있습니다. 파일의 다른 위치에서 두 번 편집 (다른 분기에서 수행됨)하면 자동 병합으로 인해 충돌이 발생하지는 않지만 실제로 작동하지 않을 수 있습니다. 함께.
사용자 지정 병합 드라이버 사용을 살펴볼 수 있습니다. 이 페이지는 그것에 대해 설명합니다.
Git-선택한 파일에서 병합 충돌 및 수동 병합을 강제하는 방법
대안은 병합을 수행하기 전에 먼저 브랜치간에 다른 파일을 찾은 다음 파일을 적절한 브랜치로 체크 아웃하여 두 편집 중 하나 또는 다른 하나를 포함하는 기능 코드와 깨끗한 병합을 얻는 것입니다.
git diff --name-only <branch1> <branch2>
git checkout <branch1> -- <paths>
개별 변경 사항을 선택 하고 싶습니다 .
git checkout master
git log --reverse --oneline topic ^master
그런 다음 git cherry-pick마스터 브랜치에 포함하려는 각 커밋에 대해 호출 합니다.
토픽 브랜치의 나머지 변경 사항을 유지해야하는 경우 새 마스터 위에이 브랜치를 리베이스 할 수도 있습니다.
git rebase master topic
참조 URL : https://stackoverflow.com/questions/5235010/how-do-i-prevent-an-automerge-using-git
'Program Club' 카테고리의 다른 글
| 때로는 JSF URL이 * .jsf, 때로는 * .xhtml, 때로는 / faces / *라는 것을 알 수 있습니다. (0) | 2020.12.30 |
|---|---|
| Scala에서 여러 생성자가있는 Java 클래스를 어떻게 하위 클래스로 만들 수 있습니까? (0) | 2020.12.30 |
| 역 외래 키를 필터링하는 Django Queryset (0) | 2020.12.30 |
| 반환과 동일하게 false를 반환합니까? (0) | 2020.12.30 |
| Spring MVC에서 BindingResult 인터페이스의 사용은 무엇입니까? (0) | 2020.12.30 |