kullanım Gıt içinde diff dosyası için Winmerge
Bir şekilde git içinde Winmerge kullanmak Farklar var?
CEVAP
Güncelleştirme Haziran 2015, 6 yıl sonra:
Ayrıntılı olarak "git mergetool winmerge", basit bir git config diff.tool winmerge
yeterli olacaktır.
Git 2.5 (Q2, 2015) şimdi bir fark olarak Winmerge veya aracı birleştirme farkındadır!
Orijinal cevap (2009-2012)
(msysgit, 1.6.5, DOS oturumu)
İlk bölümü (winmerge kullanarak) açıklanan "How do I view ‘git diff’ output with visual diff program?"
C:\myGitRepo>git config --replace --global diff.tool winmerge
C:\myGitRepo>git config --replace --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
C:\myGitRepo>git config --replace --global difftool.prompt false
winmerge.sh
Bir dizinde saklanan PATH
: bir kısmı
#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"$PROGRAMFILES/WinMerge/WinMergeU.exe" -e -u -dl "Local" -dr "Remote" "$1" "$2"
(WinMerge Command-line options)
git difftool
şimdi WinMerge başlatacak.
Eğer git diff
WinMerge başlatmak istiyorsanız, sadece ayarlayın:
set GIT_EXTERNAL_DIFF=winmerge.sh
Ama gerçek katma değer ve aynı diff aracı kullanma yeteneği geliyortek bir toplu tüm farklılıklar mevcutbunları sırayla, diff aracı pencereleri kapatmak için zorlayarak sunmak yerine bir seferde bir dosya.
Haziran 2012 Güncelleme(2-ve-bir buçuk yıl sonra):
Dizinleri karşılaştırırken yerine dosya dosya yakında hazır olacak:
[ANNOUNCE] Git 1.7.11.rc1 bkz
"
git difftool
" alıştım "--dir-diff
" harici diff araçları spawn seçenek olabiliriki dizin ağacı karşılaştırıniki geçici dizinleri doldurma sonra, bir andadış aracı bir kez bir dosya çifti başına bir örneğini çalıştırmak yerine.
"Patch difftool
: teach difftool
to handle directory diffs"cevap "Directory comparison of Git branches" daha fazla bilgi için.
Dizinler komut dosyası tarafından orijinal difftool (Aralık 2009)
his answer, script git-diffall.sh (ayrıca yolu koymak) Seba Illingworth bahseder sadece bunu yapabilir
#!/bin/sh
git diff --name-only "$@" | while read filename; do
git difftool "$@" --no-prompt "$filename" &
done
Ama tek açarak çalışırnwindows içinndosyaları (eğer WinMerge -s
seçeneği kullanmak için çalışırsanız, temp dosyaları difftool tarafından silinmiş olması nedeniyle çok erken çalışmaz)
O senin kendi iç farklılıkları incelemek için bir seçmeden önce bir fark ile dosyaların listesini gözden geçirmek için izin verir GitDiff.bat - power-diffing with GI yaklaşımı seviyorum.
Sadece DOS komutları kullanmak da orospuluk var
@echo off
setlocal
if "%1" == "-?" (
echo GitDiff - enables diffing of file lists, instead of having to serially
echo diff files without being able to go back to a previous file.
echo Command-line options are passed through to git diff.
echo If GIT_FOLDER_DIFF is set, it is used to diff the file lists. Default is windff.
goto END
)
if "%GIT_DIFF_COPY_FILES%"=="" (
rd /s /q %TEMP%\GitDiff
mkdir %TEMP%\GitDiff
mkdir %TEMP%\GitDiff\old
mkdir %TEMP%\GitDiff\new
REM This batch file will be called by git diff. This env var indicates whether it is
REM being called directly, or inside git diff
set GIT_DIFF_COPY_FILES=1
set GIT_DIFF_OLD_FILES=%TEMP%\GitDiff\old
set GIT_DIFF_NEW_FILES=%TEMP%\GitDiff\new
set GIT_EXTERNAL_DIFF=%~dp0\GitDiff.bat
echo Please wait and press q when you see "(END)" printed in reverse color...
call git diff %*
if defined GIT_FOLDER_DIFF (
REM This command using GIT_FOLDER_DIFF just does not work for some reason.
%GIT_FOLDER_DIFF% %TEMP%\GitDiff\old %TEMP%\GitDiff\new
goto END
)
if exist "%ProgramFiles%\Beyond Compare 2\BC2.exe" (
set GIT_FOLDER_DIFF="%ProgramFiles%\Beyond Compare 2\BC2.exe"
"%ProgramFiles%\Beyond Compare 2\BC2.exe" %TEMP%\GitDiff\old %TEMP%\GitDiff\new
goto END
)
"%ProgramFiles(x86)%\WinMerge\WinMergeU.exe" -r -e -dl "Local" -dr "Remote" %TEMP%\GitDiff\old %TEMP%\GitDiff\new
goto END
)
REM diff is called by git with 7 parameters:
REM path old-file old-hex old-mode new-file new-hex new-mode
copy %TEMP%\%~nx2 %GIT_DIFF_OLD_FILES%\%1
copy %5 %GIT_DIFF_NEW_FILES%
:END
Farklı dizinlerde aynı isimler ile dosyaları işlemek için yeterince sağlam değil, ama mümkün ve ne genel bir fikir veriyor:
Burada sadece bir WinMerge, dosyaların listesini içi anlaşmazlıkların olması ile açılır. Bir basit sonra inceler istediklerinizi tıklayabilirsinizESCkapat WinMerge-diff
tüm oturum olacaktır.
Nasıl android xml drawable dosyası içi...
Nasıl bir diff dosyası için Gıt keyfi ...
Nasıl bir toplu iş dosyası içinde Yöne...
Bir değer içinde bir yeni satır nasıl ...
Nasıl Windows toplu iş dosyası içinde ...