혼합된 분기의 차이점을 보시겠습니까?
를 HEAD로 볼 수.meld .
를 들어, 지점 간의 차이를 볼 수 있을까요?master
그리고.devel
멜트로?
현재 다음 단계를 수행합니다.
- 복사본의 이름
를 들어 를들면입니다.mv /projectA /projectA_master
) - 를 다시 합니다.
git clone url
- 으로 전환
devel
분점
cd projectA && git -b devel origin/devel
- mold와의 보기
meld /projectA_Master projectA
용융지에서 같은 결과를 얻을 수 있는 더 쉬운 방법은 없을까요?주로 병합을 위한 것이 아니라 변경 사항을 검토하는 데만 필요합니다.
짧고 달콤함:
git config --global diff.tool meld
가 용할구성니다합을 하도록 구성됩니다.meld
( 인수, diff에 대한 .) 지원:meld
Git에 내장되어 있습니다.)
그런 다음, 텍스트 디프 대신 그래픽 디프를 원한다면, 간단히 호출합니다.git difftool
에 git diff
(둘 다 동일한 인수를 사용합니다.)당신의 경우:
git difftool master..devel
한에 한 차등 적용을 사항과 " 를 사용하려면 다음을 하십시오.-d
또는--dir-diff
을 선택할 수 .git difftool
예를 들어 XYZ 지점에 있을 때 이 지점과 ABC 지점의 차이점이 무엇인지 확인하고 싶을 때 다음을 실행합니다.
git difftool -d ABC
부터는 git v1.7.11을 할 수 .git difftool --dir-diff
디렉터리 diff를 수행합니다.이는 https://github.com/wmanley/git-meld 스크립트 없이도 멜드와 잘 작동합니다.
깃 구성
git config --global diff.tool meld
사용하세요
git difftool -d topic // -d is --dir-diff
git difftool -d master..topic
macOS의 경우
brew cask install meld
git config --global difftool.meld.cmd 'open -W -a Meld --args \"$LOCAL\" \"$PWD/$REMOTE\"'
git config --global difftool.meld.trustExitCode true
저는 또한 이 문제가 귀찮아서 작업 트리 또는 준비 영역에 대한 임의 커밋을 더 편안하게 분산할 수 있는 깃멜드를 만들었습니다.당신은 그것을 https://github.com/wmanley/git-meld 에서 찾을 수 있습니다.Mark의 스크립트와 약간 비슷하지만 임의의 커밋, 준비 영역 또는 작업 디렉토리를 다른 것과 비교할 수 있습니다.작업 트리와 비교하는 항목 중 하나가 작업 트리인 경우에는 변경 내용이 손실되지 않도록 읽기-쓰기도 수행합니다.
를 사용하는 것이 중요합니다.git difftool -d
Meld에서 작업 파일을 편집하고 저장할 수 있습니다.이렇게 하려면 다음과 같이 일부 분기를 현재 작업 트리와 비교해야 합니다.
git difftool -d branchname
왼쪽 및 오른쪽 디렉터리가 모두 /tmp에 있다는 것이 Meld에 표시됩니다.그러나 오른쪽 디렉터리에 있는 파일은 실제로 현재 작업 디렉터리에 있는 파일에 대한 심볼 링크입니다(Windows에는 적용되지 않음).따라서 멜드에서 바로 편집할 수 있으며 저장하면 변경 내용이 작업 디렉토리에 저장됩니다.
그러나 더 흥미로운 옵션은 현재 작업 중인 dir와 stash를 비교하는 것입니다.다음과 같이 입력하면 됩니다.
git difftool -d stash
그런 다음 일부 변경 사항을 사용하지 않고도 저장(왼쪽 창)에서 현재 작업 복사본(오른쪽 창)으로 전송할 수 있습니다.git stash pop/apply
그리고 이 명령에 의해 유발될 수 있는 성가신 충돌 해결을 피할 수 있습니다.
저는 그것이 stash로 워크플로우를 크게 향상시킬 수 있다고 생각합니다.변경사항을 저장에서 작업 복사본으로 단계적으로 전송하고 원하는 경우 다른 변경사항을 추가하여 하나씩 커밋할 수 있습니다.
다른 답변에서는 현재 git 저장소에서 직접 이 작업을 수행할 방법이 없는 것처럼 보이지만, 임시 디렉터리에 두 커밋의 트리를 추출하고 이에 대해 meld를 실행하여 meld가 종료되면 두 디렉터리를 모두 제거하는 스크립트를 작성하는 것은 쉽습니다.
물론, 혼합을 통해 변경한 내용은 모두 손실되지만, 차이점을 간략하게 설명하기에는 상당히 좋은 것 같습니다.
이를 위한 쉬운 방법은 다음과 같습니다.git reset --soft
:
목표: branch_a와 branch_b의 차이점을 meld로 비교
git checkout branch_a
git checkout -b do_diff
git reset --soft branch_b
meld .
Meldon macOS의 경우, 이것을 당신의 컴퓨터에 추가합니다.~/.gitconfig
macOS 애플리케이션의 관리자가 권장하는 대로 youseb:
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
trustExitCode = true
cmd = open -W -a Meld --args \"$LOCAL\" \"$REMOTE\"
[merge]
tool = meld
[mergetool]
prompt = false
[mergetool "meld"]
trustExitCode = true
cmd = open -W -a Meld --args --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output=\"$MERGED\"
다음을 생략할 수 있습니다.merge
구성(원하는 경우).
@구텐예의 답변은 자동 탈출 및/또는 다른 문제로 인해 저에게 잘 되지 않았습니다.zsh
.
Git V1.7.9에서는 명령줄 없이 두 가지 커밋을 비교할 수 있습니다.
git gui' 편집 옵션 글로벌: " 병합 도구 사용: meld"에서 구성해야 합니다.
gitk를 시작하고 커밋을 선택한 후 다른 커밋 > "diff this --> selected"를 마우스 오른쪽 단추로 클릭합니다.'patch' 오른쪽에서 파일 > "external diff"를 클릭합니다.
meld가 시작되고 오른쪽에 여전히 선택된 첫 번째 커밋이 표시됩니다.
언급URL : https://stackoverflow.com/questions/2006032/view-differences-of-branches-with-meld
'programing' 카테고리의 다른 글
마지막 태그 이후 모든 Git 커밋 가져오기 (0) | 2023.07.10 |
---|---|
장고에서 사용자가 특정 그룹에 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.07.10 |
SQL Server 특정 열의 모든 행에서 특정 단어 찾기 및 바꾸기 (0) | 2023.07.10 |
Agit repo를 완벽하게 백업하시겠습니까? (0) | 2023.07.10 |
sql에서 주 번호를 추출하는 방법 (0) | 2023.07.10 |