이 대답은 git으로 체크인 된 두 파일 사이의 시각적 차이를 보는 데 유용합니다. 시각적 차이 프로그램으로 'git diff'출력을 보려면 어떻게합니까?
그러나 두 지점 사이의 시각적 차이를보고 싶습니다. 지금까지 내 최선의 방법은 다음과 같습니다.
git diff --name-status master dev
정보가 많지 않고 시각 적이지도 않습니다.
더 나은 것이 있습니까?
이 대답은 git으로 체크인 된 두 파일 사이의 시각적 차이를 보는 데 유용합니다. 시각적 차이 프로그램으로 'git diff'출력을 보려면 어떻게합니까?
그러나 두 지점 사이의 시각적 차이를보고 싶습니다. 지금까지 내 최선의 방법은 다음과 같습니다.
git diff --name-status master dev
정보가 많지 않고 시각 적이지도 않습니다.
더 나은 것이 있습니까?
답변:
git diff branch1..branch2
각 분기의 팁을 비교합니다.
GUI 소프트웨어를 정말로 원한다면 Mac OS X 및 Windows를 지원하는 SourceTree 와 같은 것을 사용해보십시오 .
Meld
다음 기본값으로 설정 difftool
을 가진 git config --global diff.tool meld
마지막으로 일반의 대신을 시작 diff
으로 git difftool branch1..branch2
. 결과는 훨씬 더 멋지게 보입니다.
git difftool -t meld branch1..branch2
두 분기 간의 모든 차이점에 대한 시각적 차이를 보려면 병합을 커밋하지 않고 두 분기를 병합 한 다음 git gui
또는 git 확장을 사용 하여 차이점에 대한 개요를 얻습니다.
커밋하지 않고 병합하기위한 Git 명령 행 :
자식 체크 아웃 지점 git merge --no-commit --no-ff branchB
그런 다음, 병합을 취소 할 수 있습니다
자식 병합-중단
(설명을 위해 @jcugat의 h / t)
git gui
있어 충돌은 비 단계적, 비 충돌은 단계적이라는 것을 보여 주므로, 당신은 좋은 구별을 얻습니다. 최고의 답변보다 나를 위해 더 많은 것을 도와줍니다 : D
gitk를 사용하여이 작업을 쉽게 수행 할 수도 있습니다.
> gitk branch1 branch2
먼저 branch1의 끝을 클릭하십시오. 이제 branch2의 끝을 마우스 오른쪽 버튼으로 클릭하고 Diff this-> selected를 선택하십시오.
gitk branch1..branch2
하면 두 개정 사이의 커밋 만 표시됩니다.
TortoiseGit을 사용하는 Windows 사용자의 경우이 모호한 기능을 통해 약간 시각적으로 비교할 수 있습니다.
shift
누른 상태 에서 마우스 오른쪽 버튼으로 클릭ctrl
비교할 두 가지를 선택하는 데 사용OSX 또는 Windows 7 이상을 사용하는 경우 Atlassian SourceTree 가이 기능에 매우 적합합니다. 공짜 야.
단계별 diff 설정에서 단계별 변경 사항을 볼 수 있으며 원격 및 다른 두 가지와 로컬을 쉽게 비교할 수 있습니다. 여러 파일을 선택하면 diff가 다음과 같이 나타납니다.
기능 분기를 체크 아웃 한 후 '마스터'와의 차이를보고 싶다면 '마스터'분기를 마우스 오른쪽 단추로 클릭하고 "현재와 비교"를 선택하십시오.
불행히도 * nix 배포판에서 언제 라도 사용할 수있는 것처럼 보이지 않습니다 .
"difftool"을 시도하십시오 (diff 도구 설정이 있다고 가정)-https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html 참조
내가 찾을 이름 상태 요약에 대한 좋은 그러나 difftool는 변경 사항을 반복한다 (그리고 -d
, 예를 옵션은 당신에게 디렉토리보기를 제공)
$ git difftool their-branch my-branch
Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...
또는 @ rsilva4에서 언급하고 -d
현재 분기를 기본값으로하는 것처럼 그냥 마스터와 비교하십시오.
$ git difftool -d master..
... 그렇습니다-많은 변형이 있습니다- //www.kernel.org/pub/software/scm/git/docs/git-reset.html
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
github을 사용하는 경우 웹 사이트를 사용할 수 있습니다.
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
두 가지 비교를 보여줍니다.
github.com/url/to/your/repo/compare/
지점을 선택할 수 있습니다
에서 GitExtensions 당신은 개정 그리드의 두 가지를 선택할 수 있습니다 Ctrl눌렀습니다. 그러면 분기마다 다른 파일을 볼 수 있습니다. 파일을 선택하면 diff가 표시됩니다.
여기 에서 찍은
최신 정보
Mac : 이제 SourceTree를 사용합니다. 철저히 추천합니다. 나는 특히 당신이 덩어리를 스테이지 / 언 스테이지하는 방법을 좋아합니다.
리눅스 : 나는 다음과 같이 성공했다 :
meld
예를 들어 smartgit
Ubuntu 에 설치하려면 :
.deb
에서 다운로드 하십시오이것은 일을한다 :
meld와 같은 GUI diff 도구를 사용하는 git-diffall 여기에서 포인트 5를 참조하십시오.
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
git과 meld에 대한 좋은 게시물이 있습니다 : http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
Eclipse를 사용하는 경우 작업 공간의 현재 분기를 다른 태그 / 분기와 시각적으로 비교할 수 있습니다.
Perforce의 무료 P4Merge를 사용하여 다음을 수행 할 수도 있습니다.
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Git과의 통합에 대한 자세한 내용은 여기 와 여기 에서 찾을 수 있습니다
위의 링크에서 요약하면 다음과 같습니다.
$ git mergetool
하고 $ git difftool
사용할 수 있습니다$ git diff
여전히 기본값을 사용합니다 인라인 DIFF 뷰어 : (자식 버전에서 테스트 1.8.2)[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
keepTemporaries = false
trustExitCode = false
keepBackup = false
[diff]
tool = p4merge
[difftool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
git show-branch
핵심 자식 기능으로 할 수있는 일이 많이 있습니다. 시각적 차이에 포함 할 항목을 지정하는 것이 좋습니다. 대부분의 답변은 라인 단위의 커밋 차이에 중점을 둡니다. 여기서 예제는 주어진 커밋에 영향을받는 파일 이름에 중점을 둡니다.
해결되지 않은 것으로 보이는 한 가지 시각은 가지가 포함하는 커밋을 보는 방법입니다 (공통이든 고유한지).
이 비주얼을 위해 저는 큰 팬입니다 git show-branch
. 분기당 잘 구성된 커밋 테이블을 공통 조상으로 나눕니다. -분기가있는 여러 분기가있는 리포지토리에서 시도 git show-branch
하려면 출력을 입력 하고 확인하십시오-예제가있는 쓰기에 대해서는 Git 분 기간 커밋 비교를 참조 하십시오
다음은 Visual Studio에서 VS 2017에서 테스트 한 단일 파일과 달리 전체 커밋 간의 시각적 차이를 보는 방법입니다. 안타깝게도 한 분기 내의 커밋에만 작동합니다. "팀 탐색기"에서 "분기"보기를 선택하고 저장소를 마우스 오른쪽 단추로 클릭 한 후 다음 이미지와 같이 "기록보기"를 선택하십시오.
그러면 현재 지점의 기록이 기본 영역에 나타납니다. (현재 브랜치에서 이전 커밋으로 종료 된 브랜치는 레이블로 표시됩니다.) 이제 Ctrl-Left로 커밋을 두 번 선택한 다음 마우스 오른쪽 버튼을 클릭하고 팝업 메뉴에서 "커밋 비교 ..."를 선택하십시오.
Microsoft 세계에서 분기를 비교하는 방법에 대한 자세한 내용은이 stackoverflow 질문 : Visual Studio를 사용하는 git 분기의 차이점을 참조하십시오 .
또한 확장 CodeLense를 사용하여 분기를 비교하는 vscode을 사용할 수 있습니다, 이것은 이미이 SO에 대한 답변 : 비주얼 스튜디오 코드에 다른 가지를 비교하는 방법