Git에서 두 개의 개별 분기에있는 파일을 비교할 수 없음
branchA에 FileA가 있고 branchB에 FileB가 있습니다.
문제는 한 번에 하나의 파일에만 액세스 할 수 있다는 것입니다. Mac에서 찾은 유일한 diffTools이기 때문에 FileMerge 또는 meld로 파일을 비교할 수 있기를 바랍니다.
두 파일을 meld / FileMerge하여 어떻게 비교할 수 있습니까?
[해결됨] : 1 차 개발 문제 : FileMerge에서 표준 입력을 허용하지 않음
Masi : opendiff를 사용하여 FileMerge 가 표준 입력의 파일을 갖도록 할 수 있습니다 . 따라서 다음 문제는 git의 diff 도구가 opendiff를 사용하도록 만드는 방법을 찾는 것입니다.
두 번째로 개발 된 문제 : Mac에서 opendiff를 사용하도록 Git의 diff 도구 만들기
병합에는 " git mergetool "을 사용하고 그래픽 도구를 사용하여 비교하려면 최신 git (버전 1.6.3 이상)에서 " git difftool "을 사용할 수 있습니다. 물론 먼저 구성해야하지만 일부 자동 감지 (하드 코딩 된 기본 설정 포함)를 수행하며 올바르게 기억하면 opendiff 지원이 내장되어 있습니다.
그리고 물론 일반적인 "git diff"를 사용하는 것처럼 그래픽 도구 (opendiff / FileMerge)를 사용할 수 있습니다. 예를 들어
prompt> git difftool somebranch:UNREADME otherbranch:README
git은 저장소 경로의 일부로 브랜치 이름을 지원합니다. 예를 들어 저장소에 다음 파일이있는 경우 README
에만 master
및 UNREADME
에만 있습니다 branch
.
master:README
branch:UNREADME
git을 통해 다음과 같이 비교할 수 있습니다.
git diff branch:UNREADME master:README
다음을 사용하여 저장소 아티팩트를 표준 출력으로 가져올 수 있습니다 git show
.
git show branch1:UNREADME
따라서 외부 diff 유틸리티가 bash 프롬프트에서 2 개의 파일을 가져올 수 있다면 다음과 같이 비교할 수 있습니다.
diff-command <(git show branch1:UNREADME) <(git show master:README)
를 Where <(...)
bash는 구문이 동봉 된 명령의 출력을 소요, 파이프 그것을 실행하고 명령 행에서 파이프의 파일 경로를 배치합니다.
예를 들어 현재 branchA로 체크 아웃중인 경우 다음 명령을 사용할 수 있습니다.
git diff branchB path/to/common/file/between/branches.txt
그런 다음 변경 사항의 하위 집합을 원하는 경우 diff를 편집하거나 그대로두고 git apply
diff를 패치로 둘 수 있습니다. 이를 수행하는 GUI 도구에 관해서는 다른 누군가가 제안을 할 수 있기를 바랍니다.
에서 워드 프로세서 , 당신은 당신의 .git / 구성 파일에 다음과 같은 뭔가가 필요 :
# Our diff algorithm
[diff]
external = opendiff
참고 URL : https://stackoverflow.com/questions/916822/unable-to-diff-files-in-two-separate-branches-in-git
'Nice programing' 카테고리의 다른 글
"Project Navigator"를 클릭하면 Xcode 폴더가 자동으로 확장 됨 (0) | 2020.12.06 |
---|---|
WPF의 텍스트 블록에 스트로크 적용 (0) | 2020.12.06 |
런타임에 즉시 텍스트에서 이미지를 생성하는 방법 (0) | 2020.12.06 |
비공개 github 저장소에서 가져올 gem을 어떻게 지정할 수 있나요? (0) | 2020.12.06 |
목록의 새 전체 복사본 (복제본)을 만드는 방법 (0) | 2020.12.06 |