문제

내가 병합하려는 두 가지로 분리되는지 알고 싶었는 파일을 수정되었습니다.

이 링크: http://linux.yyz.us/git-howto.html 는 매우 유용합니다.

도구를 비교하는 분지가 있다:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

궁금했던 무언가가있는 경우 다음과 같"git 상태를 마스터...지점"만 사람들을 볼 수 있는 파일을 서로 다른 두 가지입니다.

새로 만들지 않고 도구,내 생각에 이것은 가장 가까운 당신을 얻을 수있는 지금(는 물론이 보여 반복하면 파일을 수정 번 이상):

  • git diff master..branch | grep "^diff"

었는지 궁금하면 뭔가가 부재...

도움이 되었습니까?

해결책

현재 지점을 비교합니다 master 나뭇가지:

$ git diff --name-status master

두 가지를 비교하려면 :

$ git diff --name-status firstbranch..yourBranchName

읽으십시오 git diff 에서 공식 문서.

다른 팁

노력하다

$ git diff --stat --color master..branchName

이렇게하면 각 변경에 대한 자세한 정보가 제공되며 여전히 동일한 수의 줄을 사용합니다.

다른 방식으로 병합되면 분기를 뒤집기 위해 차이에 대한 더 명확한 그림을 얻을 수 있습니다.

$ git diff --stat --color branchName..master

또한 GIT는 저렴하고 쉬운 가지를 가지고 있음을 명심하십시오. 병합이 문제가 될 수 있다고 생각되면 병합에 대한 분기를 만듭니다. 그래서 만약 master 합병하고 싶은 변경 사항이 있습니다 ba 마스터의 코드가 필요한 지점입니다. 다음을 수행 할 수 있습니다.

git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master

최종 결과는 지점을 조이기 전에 던지기 지점에서 병합을 시험해보아야한다는 것입니다. 내 자기 엉킴을 얻으면 그냥 삭제할 수 있습니다. ba-merge 분기하고 다시 시작하십시오.

누군가 두 분기에서 diff 파일을 생성하려는 경우 :

git diff master..otherbranch > myDiffFile.diff

GUI 기반 방법도 있습니다.

당신이 사용할 수있는 gitk.

  1. 운영:

    $ gitk --all
    
  2. 지점의 커밋을 마우스 오른쪽 버튼으로 클릭하고 선택하십시오. 이 커밋을 표시하십시오 팝업 메뉴에서.

  3. 다른 지점의 커밋을 마우스 오른쪽 버튼으로 클릭하고 선택하십시오. 이것 -> 표시된 커밋 또는 Diff 표시된 커밋 -> this.

그런 다음 오른쪽 하단 패널에 변경된 파일 목록이 있으며 왼쪽 하단 패널에는 Diff 세부 사항이 있습니다.

이 경우 MELD를 사용하는 한 가지 추가 옵션 :

git difftool -d master otherbranch

이를 통해 파일 간의 차이점을 볼 수있을뿐만 아니라 특정 파일을 가리키고 클릭하는 쉬운 방법도 제공합니다.

GIT를 사용하면 결과가 마음에 들지 않으면 합병을 쉽게 시도하고 문제에서 벗어날 수 있습니다. 잠재적 인 문제를 미리 찾는 것보다 쉬울 수 있습니다.

그리고 특정 파일 중에서 만 변경 사항을 찾고 있다면 :

git diff branch1 branch2 -- myfile1.js myfile2.js

Branch1은 선택 사항이며 Branch1이 제공되지 않으면 현재 분기 (귀하가있는 분기)가 기본적으로 고려됩니다. 예 :

git diff master -- controller/index.js

공동 작업 또는 한 번에 여러 기능에서 작업 할 때 상류 또는 마스터에도 지점에 포함되지 않은 작업이 포함되어 있으며 기본 차이에 잘못 나타납니다.

상류가 움직일 수 있다면 다음을 수행해야합니다.

git fetch
git diff origin/master...

GIT DIFF 마스터를 사용하면 관련 변경 사항이 포함되거나 포함되지 않을 수 있습니다.

사용중인 경우 Intellij 아이디어, 당신은 또한 모든 지점을 현재 작업 지점과 비교할 수도 있습니다. 보다 http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 더 많은 정보를 위해서. 이것은에서 사용할 수 있습니다 무료 판 또한.

두 가지 지점이 있습니다

  • A (일하는 지점)
  • B (비교하고 싶은 다른 지점)

분기에 있으면 입력 할 수 있습니다

git diff --color B

그러면 이것은 당신에게 출력을 줄 것입니다

enter image description here

이것에 대한 중요한 요점은입니다

  1. 녹색의 텍스트는 분기 a에 있습니다

  2. 빨간색의 텍스트는 분기 b에 있습니다

의 많은 여기에 대한 답하지만,내가 원하는 무언가를 추가하는 일반적으로 사용.는 경우에 하나의 분기점을 비교하고 싶은 나는 일반적으로 다음 중 하나를 수행합니다.의 이익을 위해 이 대답은 우리가 말하기를 우리는 우리의 유통 지점에 있습니다.에 따라 무엇이 보기에 필요한 시간에 따라 달라집니다 당신은 선택이지만,대부분의 시간이 나는 두 번째 옵션을 사용하면 됩니다.첫 번째 옵션이 유용할 수 있는 경우에 당신은 노력하고 다시 되돌릴 수 있는 원본을--어느 쪽이든 모두 작업을 수행!

이 비교합니다 마스터는 지점에 있다는 것은(보조)원래 코드를 추가한 라인과 새 코드는 것으로 간주됩 제거한 라인

git diff ..master

이것은 또한 비교 마스터는 지점에 있다는 것은(보조)원래 코드는 오래된 라인과 새로운드에 사용할 수 있습니다 라인

git diff master..

GUI를 좋아하고 Windows를 사용하는 경우 여기에 쉬운 방법이 있습니다.

  1. Winmerge를 다운로드하십시오
  2. 두 가지를 다른 폴더로 확인하십시오
  3. Winmerge를 사용하여 폴더별로 폴더를 수행하십시오. 분기 중 하나가 작업중인 지점 인 경우 쉽게 수정할 수 있습니다.
git diff revision_n revision_m

만약에 revision_n 그리고 revision_m 연속 커밋과 동일하게 출력합니다git show revision_m

GUI 솔루션을 찾고있는 사람들을 위해 git cola 아주 좋은 "Branch Diff Viewer가 있습니다 (차이 -> 가지 ..).

당신은 또한 a를 사용할 수 있습니다 시각적 차이.

예를 들어, 사용중인 경우 Sourcetree, 당신은 단순히 할 수 있습니다 로그 뷰에서 두 개의 커밋을 선택하십시오.

(저는 대부분의 경우 GUI를 사용하는 것을 선호하며 GUI 옵션에 익숙하지 않은 사람들을 위해 이것을 게시하고 있습니다.)

할 수도 있습니다 쉽게 비교 가지를 위해 변경된 파일을 사용하여 예를 들어 TortoiseGit.그냥 클릭 찾아보기를 참조 선택 가지하고 있습니다.

예를 들면 비교할 귀하의점master 당신을 얻을 것이 결과적으로 목록은 파일의 변경될에 master 로 결정한 경우를 병합 h-점master.

Remmber 는 다른 결과는 경우 비교할 masterh-점h-점master.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top