수색…


통사론

  • git merge another_branch [옵션]
  • 자식 병합 --abort

매개 변수

매개 변수 세부
-m 병합 커밋에 포함될 메시지
-v 세부 출력 표시
--abort 모든 파일을 해당 상태로 되 돌리려고합니다.
--ff-only 병합 - 커밋이 필요할 때 즉시 중단합니다.
--no-ff 병합 커밋을 강제로 생성하지 않아도 강제로 생성합니다.
--no-commit 병합이 실패하여 결과를 검사하고 조정할 수 없다고 가장합니다.
--stat 병합 완료 후 diffstat 표시
-n / --no-stat diffstat 표시하지 않음
--squash 병합 된 변경 사항이있는 현재 분기에 대해 단일 커밋을 허용합니다.

한 분기를 다른 분기로 병합

git merge incomingBranch

이것은 브랜치 incomingBranch 를 현재 브랜치와 병합합니다. 예를 들어, 현재 master 있으면 incomingBranchmaster 로 병합됩니다.

병합은 경우에 따라 충돌을 일으킬 수 있습니다. 이 경우 Automatic merge failed; fix conflicts and then commit the result. 라는 메시지가 나타납니다 Automatic merge failed; fix conflicts and then commit the result. 충돌 한 파일을 수동으로 편집하거나 병합 시도를 취소하려면 다음을 실행해야합니다.

git merge --abort

자동 병합

두 브랜치에서 커밋이 충돌하지 않으면 Git이 자동으로 병합 할 수 있습니다.

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

병합 중단

병합을 시작한 후에는 병합을 중지하고 모든 것을 병합 전 상태로 되돌릴 수 있습니다. --abort 사용하십시오.

git merge --abort

병합의 한 쪽에서 만 변경 유지

병합하는 동안, 당신은 통과 할 수 --ours 또는 --theirsgit checkout 한쪽에서 파일 또는 병합의 다른 모든 변경을 할 수 있습니다.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

커밋과 병합

기본 동작은 병합이 빨리 감기로 해결되고 병합 커밋을 만들지 않고 분기 포인터 만 업데이트하는 경우입니다. 해결하려면 --no-ff 를 사용하십시오.

git merge <branch_name> --no-ff -m "<commit message>"

병합 된 변경 사항이없는 모든 브랜치 찾기

때로는 변경 사항이 이미 마스터로 병합 된 분기가있을 수 있습니다. 이되지 않은 모든 지점 발견 master 에 비해 더 독특한 커밋이없는 그 master . 이는 PR이 마스터에 병합 된 후에 삭제되지 않은 분기를 찾는 데 매우 유용합니다.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow