2011-09-15 2 views
3

pygit2 (파이썬 용 libgit2 래퍼)를 사용하고 병합을 만들기 전에 커밋합니다. 두 부모님과 커밋 - 지점을 실제로 자동 병합 할 수 있는지 확인하기 위해 GitHub과 같은 드라이 런 체크를하고 싶습니다.GitHub는 두 개의 분기를 자동으로 병합 할 수 있는지 어떻게 확인합니까?

분명한 방법은 분기 지점 이후의 모든 커밋을 반복하고 충돌별로 줄 단위로 확인하는 것입니다. 그러나 나는 더 나은 접근법이있을 것이라고 생각한다.

+0

['git merge-tree'] (http://man.he.net/man1/git-merge-tree)를보고 싶을 수도 있습니다. 나는 [이 답변] (http://stackoverflow.com/questions/501407/is-there-a-git-merge-dry-run-option/6283843#6283843)을 통해 이전 질문에 대한 답변을 찾았습니다. git merge의 마른 실행. – daxelrod

+0

질문 제목을 업데이트하여 불길에서 수행하는 방법을 묻고 명령 줄에서 실행하지 않도록 지정해야합니다 – Andy

답변

2

GitHub는 git merge some_branch 명령을 실행하고 반환 상태를 확인하여이 작업을 수행합니다. 충돌 병합 들어, git merge 명령이 리턴 1.

$ git merge test1 
Auto-merging HELLO 
CONFLICT (content): Merge conflict in HELLO 
Automatic merge failed; fix conflicts and then commit the result. 
$ echo $? 
1 

병합 기지가 될 것입니다 무엇 오프에 따른, 모함 지점에서이 작업을 수행합니다.

편집 :merge.verbosity 옵션을 "0"으로, 일부 사용 (당신이 지불 한없이 pygit이 어떻게 적용 할 수 있는지 확실하지)이 될 수 있습니다로 설정하는 경우 :

컨트롤의 양을 재귀 병합 전략에 의해 표시된 출력. 수준 0은 충돌이 인 경우 최종 오류 메시지를 제외하고는 아무 것도 출력하지 않습니다. 수준 1은 충돌 만 출력하고 2 개의 출력 충돌은 파일 을 변경합니다. 레벨 5 이상은 디버깅 정보를 출력합니다. 기본값은 이며 레벨 2입니다. GIT_MERGE_VERBOSITY 환경 변수로 재정의 할 수 있습니다.

git merge의 설명서 페이지의 "구성"절을 http://linux.die.net/man/1/git-merge에 참조하십시오.

관련 문제