Git에 가장 적합한 시각적 병합 도구는 무엇입니까? [닫은]
Git에서 병합을보고 편집하는 데 가장 적합한 도구는 무엇입니까? 별도의 패널에 "mine", "theirs"및 "ancestor"가 있고 네 번째 "출력"패널이있는 3 방향 병합보기를 얻고 싶습니다.
또한 해당 도구를 호출하는 방법도 좋습니다. (나는 여전히 kdiff3를 오류가 발생하지 않는 방식으로 시작하는 방법을 찾지 못했습니다.)
내 OS는 Ubuntu입니다.
Meld 는 비교 / 병합 도구입니다.
설치 방법은 다음과 같습니다.
- 우분투
- 맥
- Windows : "권장되는 Windows 용 Meld 버전은 http://meldmerge.org 에서 MSI로 제공되는 최신 릴리스입니다 . "
" 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'
Unix / Linux에서는 $BASE
쉘에 의해 변수로 구문 분석되는 것을 원하지 않습니다. 실제로 작동하려면 ~ / .gitconfig 파일에 나타나야합니다.
내가 가장 좋아하는 Beyond Compare 3 에는 Pro 에디션 에 병합 기능이있습니다. 병합의 좋은 점은 기본, 왼쪽, 오른쪽 및 병합 된 결과의 4 가지 뷰를 모두 볼 수 있다는 것입니다. P4V 보다 다소 시각적이지않지만 WinDiff보다 훨씬 큽니다. 그것은 많은 소스 제어와 통합 윈도우 / 리눅스 및 작동합니다. 고급 규칙, 에디션, 수동 정렬과 같은 많은 기능이 있습니다.
Perforce Visual Client ( P4V ) 는 병합을위한 가장 명확한 인터페이스 중 하나를 제공하는 무료 도구입니다 ( 일부 스크린 샷 참조). 모든 주요 플랫폼에서 작동합니다. 이 도구에 대한 나의 가장 실망스러운 점은 일종의 "읽기 전용"인터페이스 입니다. 파일을 수동으로 편집 할 수 없으며 수동으로 정렬 할 수 없습니다.
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:
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.
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를 사용하는 경우 도구에 내장 된 Team Explorer는 git 병합 충돌을 해결하는 데 매우 유용한 도구입니다.
gitx http://gitx.frim.nl/
큰 커밋 세트로 작업 할 때 몇 가지 버그가 있지만 변경 사항을 탐색하고 다른 변경 사항을 준비한 다음 커밋하는 데 좋습니다.
참고 URL : https://stackoverflow.com/questions/137102/whats-the-best-visual-merge-tool-for-git
'Development Tip' 카테고리의 다른 글
Git 푸시 오류 : 저장소 데이터베이스에 개체를 추가 할 권한이 없습니다. (0) | 2020.10.03 |
---|---|
모든 브랜치를 당기고 밀도록 git 설정 (0) | 2020.10.03 |
bcrypt는 어떻게 내장 솔트를 가질 수 있습니까? (0) | 2020.10.03 |
git init를 실행 취소하는 명령이 있습니까? (0) | 2020.10.02 |
git repo 브랜치에서 pip 설치 (0) | 2020.10.02 |