IT story

Git에 가장 적합한 시각적 병합 도구는 무엇입니까?

hot-time 2020. 2. 9. 19:22
반응형

Git에 가장 적합한 시각적 병합 도구는 무엇입니까? [닫은]


Git에서 병합을보고 편집하는 가장 좋은 도구는 무엇입니까? 별도의 패널에 "mine", "theirs"및 "ancestor"및 네 번째 "output"패널이 포함 된 3 방향 병합보기를 원합니다.

또한 해당 도구를 호출하는 지침은 훌륭 할 것입니다. (아직도 오류가 발생하지 않도록 kdiff3을 시작하는 방법을 아직 알지 못했습니다.)

내 OS는 우분투입니다.


Meld 는 diff / merge 도구입니다.

설치 방법은 다음과 같습니다.


" git mergetool" 와 함께 사용하도록 자체 병합 도구를 구성 할 수 있습니다 .

예:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

그리고 당신이 그것에있는 동안, 당신은 또한 " git difftool"에 대한 difftool로 설정할 수 있습니다 :

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

유닉스 / 리눅스에서는 $BASE쉘이 변수로 파싱 하는 것을 원하지 않습니다. 실제로 작동하려면 ~ / .gitconfig 파일에 나타나야합니다.


내가 가장 좋아하는 Beyond Compare 3 Pro 에디션 병합 기능을가지고있습니다. 병합의 장점은 기본, 왼쪽, 오른쪽 및 병합 된 결과의 4 가지보기를 모두 볼 수 있다는 것입니다. P4V 보다 시각적이 좋지않지만 WinDiff보다 훨씬 더시각적입니다. 그것은 많은 소스 제어와 통합 윈도우 / 리눅스 및 작동합니다. 그것은 고급 규칙, 판, 수동 정렬과 같은 많은 기능을 가지고 있습니다 ...

P4V ( Perforce Visual Client ) 는 병합을위한 가장 명확한 인터페이스 중 하나를 제공하는 무료 도구입니다 ( 일부 스크린 샷 참조). 모든 주요 플랫폼에서 작동합니다. 이 도구에 대한 나의 주된 실망은 그 종류의 "읽기 전용"인터페이스 입니다. 파일을 수동으로 편집 할 수 없으며 수동으로 정렬 할 수 없습니다.

PS : P4Merge는 P4V에 포함되어 있습니다. Perforce는 클라이언트없이 도구를 얻는 것을 조금 어렵게 만듭니다.

SourceGear Diff / Merge 는 두 번째로 무료로 사용할 수있는 도구입니다. 병합 스크린 샷 을 확인하면 적어도 3 개의 뷰가있는 것을 볼 수 있습니다.


Meld SourceGear Diff / Merge보다 선호하는 새로운 무료 도구입니다. 이제는 Git 과 같은 일부 소스 제어를 기본적으로 지원한다는 뚜렷한 이점으로 대부분의 플랫폼 (Windows / Linux / Mac)에서도 작동합니다. 따라서 모든 파일에 대한 역사 차이를 훨씬 간단하게 만들 수 있습니다. 병합보기 ( 스크린 샷 참조)에는 SourceGear Diff / Merge 와 같이 3 개의 창이있습니다. 복잡한 경우에는 병합이 다소 어려워집니다.

추신 : 하루 중 하나의 도구가 5 개의 뷰 병합을 지원하는 경우 Git에서 커밋을 체리 픽하면 실제로 하나의 기초가 아니라 두 가지가 있기 때문에 정말 훌륭합니다. 두 개의 기본, 두 개의 변경 및 하나의 결과 병합.


내가 가장 좋아하는 시각적 병합 도구는 SourceGear DiffMerge입니다.

  • 그것은 무료입니다.
  • 크로스 플랫폼 (Windows, OS X 및 Linux).
  • 깨끗한 시각적 UI
  • 예상되는 모든 diff 기능 (Diff, Merge, Folder Diff).
  • 명령 행 인터페이스.
  • 사용 가능한 키보드 단축키.

사용자 인터페이스


kdiff3에 대해 좋은 소식을 듣습니다.


Vimdiff

일단 vim을 배우고 IMHO를 배운 후에는 vimdiff는 배우기위한 아름다운 작은 직교 개념 중 하나 일뿐입니다. vim에서 온라인 도움말을 얻으려면 :

:help vimdiff 

이 질문은 그것을 사용하는 방법을 다룹니다 : vimdiff를 사용하여 충돌을 어떻게 해결합니까?

여기에 이미지 설명을 입력하십시오

어두운 시대의 마우스 사용에 갇혀 있고 병합하는 파일이 크지 않은 경우 meld를 권장합니다.


P4Merge 를 시도 할 수 있습니다 .

P4Merge를 사용하여 파일 버전 간의 차이점을 시각화하십시오. 컬러 코딩을 통한 병렬 또는 동시 개발로 인한 충돌을 해결합니다.

기능은 다음과 같습니다.

  • 텍스트 파일 차이점 강조 및 편집
  • Choose to include or ignore line endings or white spaces
  • Recognize line-ending conventions for Windows (CRLF), Mac (CR), and Unix (LF)
  • Use command-line parameters and launch from non-Perforce applications
  • Display line numbers when comparing and merging files
  • Exclude files that are modified, unique, or unchanged
  • Filter files by name or extension
  • Organize modified assets in familiar file/folder hierarchy
  • Compare JPEG, GIF, TIFF, BMP, and other file formats
  • Extend using the Qt API
  • Overlay images or display side-by-side
  • Highlight differences on overlaid images

IntelliJ IDEA has a sophisticated merge conflict resolution tool with the Resolve magic wand, which greatly simplifies merging:

Source: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/


Diffuse is my favourite but of course I am biased. :-) It is very easy to use:

$ diffuse "mine" "output" "theirs"

Diffuse is a small and simple text merge tool written in Python. With Diffuse, you can easily merge, edit, and review changes to your code. Diffuse is free software.


Araxis Merge http://www.araxis.com/merge I'm using it on Mac OS X but I've used it on windows... it's not free... but it has some nice features... nicer on windows though.


If you are just looking for a diff tool beyond compare is pretty nice: http://www.scootersoftware.com/moreinfo.php


You can change the tool used by git mergetool by passing git mergetool -t=<tool> or --tool=<tool>. To change the default (from vimdiff) use git config merge.tool <tool>.


So for the git merge, you can try:

  • DiffMerge to visually compare and merge files on Windows, OS X and Linux.

    DiffMerge

  • Meld, is a visual diff and merge tool.

    Meld is a visual diff and merge tool

  • KDiff3, a diff and merge program), which compares or merges 2 or 3 text input files/dirs.
  • opendiff (part of Xcode Tools on macOS), a command line utility which launches the FileMerge application from Terminal to graphically compare files or directories, including merging.

I've tried a lot of the tools mentioned here and none of them have quite been what I'm looking for.

Personally, I've found Atom to be a great tool for visualizing differences and conflict resolution/merging.

As for merging, there aren't three views but it's all combined into one with colored highlighting for each version. You can edit the code directly or there are buttons to use whichever version of that snippet you want.

I don't even use it as an editor or IDE anymore, just for working with git. Clean UI and very straight-forward, plus it's highly customizable.

  • You can start it from the command line and pass in a single file you want to open to, or add your project folder (git repo).

    • I would also recommend project-manager as a very convenient way to navigate between projects without filling up your tree view.
  • The only problem I've had is refreshing -- when working with large repositories atom can be slow to update changes you make outside of it. I just always close it when I'm finished, and then reopen when I want to view my changes/commit again. You can also reload the window with ctrl+shift+f5, which only takes a second.

And it's free of course.


I use different tools for merge and compare:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

Fist could be called by:

git difftool [BRANCH] -- [FILE or DIR]

를 사용할 때 두 번째가 호출됩니다 git mergetool.


Linux, Mac 또는 Windows에 ECMerge diff / merge 도구설치할 수 있습니다 . Git에 미리 설정되어 있으므로 사용 만하면 git mergetool됩니다.


Visual Studio를 사용하는 경우 기본 제공 도구 인 팀 탐색기는 자식 병합 충돌을 해결하는 데 매우 유용한 도구입니다.


gitx http://gitx.frim.nl/

큰 커밋 세트로 작업 할 때 일부 버그가 있지만 변경 사항을 찾아보고 다른 변경 사항을 선택하여 준비한 다음 커밋하는 데 유용합니다.

참고 URL : https://stackoverflow.com/questions/137102/whats-the-best-visual-merge-tool-for-git



반응형