git이 실제로 병합하지 않고 병합이 충돌하는지 알려줄 수 있습니까? [복제]
- git-merge --dry-run 옵션이 있습니까? 답변 13 개
작업 트리를 건드리지 않고 병합이 충돌하는지 여부를 알 수 있습니까? 작업 트리를 체크 아웃하고 싶지 않기 때문에 작업 트리를 만지고 싶지 않습니다. 여러 지점에 대한이 정보를 보려면 시간이 오래 걸립니다.
나는 실제로 병합을 시도하기 전에 얼마나 많은 문제를 겪고 있는지 알고 싶다고 가정하고 있습니다. 실패한 병합 후 마지막 커밋으로 재설정하는 것이 상대적으로 쉬우므로 그럴 경우 놀라지 않을 것입니다 의도 된 접근 방식입니다.즉, 작업 트리에서 기존 파일을 실제로 터치하지 않으려면 패치를 만들고 대상 분기에 대해 테스트 할 수 있습니다. 또한 어떤 파일에 어떤 변경 사항이 있었는지 정확하게 보여주는 이점이 있습니다. 텍스트 편집기에서 패치 파일을여십시오.
git checkout -b mycrazybranch
[change some stuff...]
git add .
git commit -m "changed some stuff"
git format-patch master --stdout > crazy.patch
git checkout master
git apply crazy.patch --check
[all good! cleanup...]
rm crazy.patch
보시다시피 패치 파일이 생성되고 --check로 테스트하여 오류가 있는지 확인한 다음 패치 파일을 제거 할 수 있습니다.
git merge --abort
충돌이 있음을 확인한 후에 할 수 있습니다 .
기존 답변의 요약으로 병합 충돌이 있는지 확인하는 두 가지 방법이 있습니다.
git format-patch $(git merge-base branch1 branch2)..branch2 --stdout | git apply --3way --check -
branch1
위의 명령을 실행할 때 현재 지점이 있어야합니다.또 다른 방법:
git merge --no-commit branch2
# check the return code here
git merge --abort
정확히는 그렇지 않습니다. 그러나 --no-commit 옵션을 사용할 수 있으므로 병합 후 결과를 자동으로 커밋하지 않습니다. 이러한 방식으로 커밋 트리를 망칠 필요없이 병합을 검사하고 원하는 경우 병합을 취소 할 수 있습니다.참고 URL :
'programing' 카테고리의 다른 글
양방향 암호화 : 검색 할 수있는 비밀번호를 저장해야합니다 (0) | 2020.05.24 |
---|---|
C 멀티 라인 매크로 : do / while (0) vs scope block [duplicate] (0) | 2020.05.24 |
yum 패키지가 설치된 경로 결정하기 (0) | 2020.05.24 |
Python 하위 프로세스 통신 방법을 사용할 때 종료 코드를 얻는 방법은 무엇입니까? (0) | 2020.05.24 |
이력서가 아닌 앱이 다시 시작됨 (0) | 2020.05.24 |