실제로 병합하지 않고 병합을 테스트하는 방법
git merge
현재 작업중인 지점과 마스터 인 두 지점 사이 를 시뮬레이션 할 수있는 방법이 있습니까?
내가해야 할 때 종종 갈등이 발생합니다 git merge
. 병합을 먼저 시뮬레이션하는 방법이 있습니까?
병합을 시도 할 때까지 어떻게 될지 시뮬레이션하는 방법이 없다고 생각합니다. 그러나 git status
병합을 수행하기 전에 출력 이 비어 있는지 확인한 후에 시도해 보는 것이 안전합니다. 충돌이 발생하면 다음과 같이 이전 상태로 즉시 돌아갈 수 있습니다.
git reset --merge
git 1.7.4부터 다음을 수행하여 병합을 중단 할 수도 있습니다.
git merge --abort
( 해당 옵션을 추가 한 커밋 메시지에 설명되어 있듯이 , 이는 일관성 등을 위해 추가되었습니다 git rebase --abort
.)
git merge --no-commit
병합이 실제로 커밋되지 않도록하는 데 사용할 수 있으며 , 병합 방식이 마음에 들지 않으면 원래 헤드로 재설정하십시오.
병합이 빨리 진행되고 있어도 정의에 따라 충돌이없는 경우에도 병합을 완료하지 않으려는 경우에도 추가 할 수 있습니다 --no-ff
.
주제 분기의 변경 사항을 마스터와 비교하려면 다음을 수행하는 것이 가장 쉽고 안전합니다.
git checkout master
git checkout -b trial_merge
git merge topic_branch
병합을 완료하면 마스터에서 통합 된 변경 사항을 쉽게 확인할 수 있습니다.
git diff master
완료되면 간단히 trial_merge 분기를 삭제하십시오.
git checkout master
git branch -D trial_merge
이런 식으로 마스터 브랜치는 변하지 않습니다.
나는 사용한다 :
git merge --ff-only
설명서 에 따르면 :
현재 HEAD가 이미 최신 상태이거나 병합을 빨리 진행할 수있는 경우가 아니면 0이 아닌 상태로 병합 및 종료를 거부하십시오.
두 브랜치간에 충돌이없는 경우 빨리 감기 병합이 있기 때문에 실제로는 시뮬레이션이 아닙니다. 그러나 갈등이 발생하면 통보를 받고 아무 일도 일어나지 않습니다.
git merge --abort
최근에을 사용할 수있었습니다 . 그러나 병합 충돌이있는 경우에만 사용할 수 있습니다. 커밋하지 않으려면 위에서 언급 한 다른 방법을 사용하십시오.
왜 버리기 분기 (git checkout -b)를 만들고 테스트 병합을 수행하지 않습니까?
나는 그것이 당신의 경우인지 정확히 알지 못하지만 귀하의 질문은 때로는 기능을 시작하고 며칠 동안 커밋하고 개발을 여러 번 병합한다는 것을 기억합니다.
이 시점에서 내가 변경 한 정확한 파일에 대한 제어 권한을 잃어 버렸고 기능이 닫히고 코드가 개발 될 때만 알 수 있습니다.
이 경우 소스 트리를 사용하여 어떤 수정 작업을 수행했는지 알 수있는 좋은 방법입니다 (병합이 아닌 다른 방법).
기본 분기에서 오른쪽 버튼을 클릭하고 다음을 선택해야합니다 Diff Against Current
.
그러면 소스 트리는 브랜치를 기본 브랜치로 병합하면 병합 될 모든 수정 사항을 표시합니다.
물론 충돌을 보여주지는 않지만 병합에 유용한 도구입니다.
참고 URL : https://stackoverflow.com/questions/7484199/how-to-test-a-merge-without-actually-merging-first
'development' 카테고리의 다른 글
Xamarin.Forms와 Xamarin Native를 언제 사용해야합니까? (0) | 2020.06.10 |
---|---|
Vue.js—v- 모델과 v- 바인드의 차이점 (0) | 2020.06.10 |
jQuery에서 select 태그의 옵션 태그 수 계산 (0) | 2020.06.10 |
파이썬의 사전에서 모든 값을 추출하려면 어떻게합니까? (0) | 2020.06.10 |
HashMap 키와 같이 대소 문자를 구분하지 않는 문자열 (0) | 2020.06.10 |