Nasıl tercih fark aracı / görüntüleyici ile 'git diff' çıktı görüntülerim?

oy
669

Ben yazarken git diff, ben (Windows üzerinde SourceGear diffmerge) seçim benim görsel diff aracıyla çıktı görüntülemek istiyorum. Nasıl bunu budala yapılandırabilirim?

Oluştur 31/10/2008 saat 23:55
kaynak kullanıcı
Diğer dillerde...                            


26 cevaplar

oy
361

Git1.6.3 beri kullanabilirsiniz git difftool komut : bkz aşağıda cevabımı .


Bu olabilir makale size yardımcı olacaktır. İşte en iyi parçalardır:

Harici bir fark aracı belirtmek için iki farklı yol vardır.

İlk GIT_EXTERNAL_DIFF değişkeni ayarlayarak kullanılan yöntemdir. Ancak, değişken yürütülebilir tam yolu işaret gerekiyordu. Ayrıca, GIT_EXTERNAL_DIFF belirtilen yürütülebilir 7 bağımsız değişkenler sabit bir dizi ile çağrılır:

path old-file old-hex old-mode new-file new-hex new-mode

En fark araçları argümanlar farklı bir düzen (ve yalnızca bazı) gerektirecektir gibi, büyük olasılıkla da gerçek fark aracı çağırır; bunun yerine bir sarıcı komut dosyası belirtmek gerekir.

Tercihim ikinci yöntem, etmektir "git config" aracılığıyla harici fark aracı yapılandırmak . İşte ne yaptım:

1) gibi bir şey içeren bir sarıcı komut dosyası "git-diff-wrapper.sh" Oluştur

-->8-(snip)--
#!/bin/sh

# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode

"<path_to_diff_executable>" "$2" "$5" | cat
--8<-(snap)--

Beşinci, sadece ikinci ( "eski dosya") ve ( "Yeni dosya") Görüldüğü gibi argümanlar fark aracı geçilecek.

2) Tip

$ git config --global diff.external <path_to_wrapper_script>

Komut istemine, yola "git-diff-wrapper.sh", ~ / .gitconfig içeren senin böylece ile değiştirerek

-->8-(snip)--
[diff]
    external = <path_to_wrapper_script>
--8<-(snap)--

yani yerine tersbölülerden kesti ileri kullanın sarıcı komut dosyası ve diff aracına yolları belirtmek için doğru sözdizimini kullandığınızdan emin olun. Benim durumumda, ben

[diff]
    external = \"c:/Documents and Settings/sschuber/git-diff-wrapper.sh\"

.gitconfig ve

"d:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat

sargı komut. sondaki "kedi" Zihin!

(I 'herhalde | cat' düzgün veya tutarlı dönüş durumunu iade olmayabilir bazı programlar için sadece ihtiyaç vardır. Sizin fark aracı açık dönüş statüsüne sahip olmadığını sondaki kedi olmadan denemek isteyebilirsiniz)


Yani (yukarıda alıntılanan yazı) dış aracı için teoridir yapılandırma dosyası aracılığıyla tanımlanmış (değil ortam değişkeni aracılığıyla).
Uygulamada (hala dış aracının yapılandırma dosyası tanımı için), sen başvurabilirsiniz:

Cevap 01/11/2008 saat 00:03
kaynak kullanıcı

oy
6

Giriş

Başvuru için ben VonC cevabı benim varyasyonu dahil etmek istiyorum. Ben PowerShell (veya cmd.exe) dan Git kendisi modifiye PATH'ile (şu anda 1.6.0.2) msys Git sürümünü kullanarak ve çalıştırıyorum akılda değil Bash kabuğunu tutun.

Ben, yeni bir komut tanıtıldı gitdiff. Bu komutu çalıştırmak geçici yönlendirmeleri git diff(kalıcı yapar VonC çözümüyle aksine) seçtiğiniz bir görsel fark programı kullanmak. Bu bana varsayılan Git diff işlevselliği (her ikisi de sahip olmasını sağlar git diff) yanı sıra görsel fark işlevselliği ( gitdiff). Her iki komut örneğin böylece yazabilirsiniz belirli bir dosyada görsel fark değişikliklere, aynı parametreleri almak

gitdiff path/file.txt

Kurmak

Not $GitInstallGit yüklü olduğu dizine için yer tutucu olarak kullanılır.

  1. Yeni dosya oluşturma, $GitInstall\cmd\gitdiff.cmd

    @echo off
    setlocal
    for /F "delims=" %%I in ("%~dp0..") do @set path=%%~fI\bin;%%~fI\mingw\bin;%PATH%
    if "%HOME%"=="" @set HOME=%USERPROFILE%
    set GIT_EXTERNAL_DIFF=git-diff-visual.cmd
    set GIT_PAGER=cat
    git diff %*
    endlocal
    
  2. Yeni bir dosya oluşturun $GitInstall\bin\git-diff-visual.cmd(yerine [visual_diff_exe]seçtiğiniz fark programına tam yol ile yer tutucu)

    @echo off
    rem diff is called by git with 7 parameters:
    rem path old-file old-hex old-mode new-file new-hex new-mode
    echo Diffing "%5"
    "[visual_diff_exe]" "%2" "%5"
    exit 0
    
  3. Artık bitti. Koşu gitdiffbir Git depo içinden şimdi değiştirildi her dosya için görsel fark programını çağırmak gerekir.

Cevap 25/12/2008 saat 16:44
kaynak kullanıcı

oy
10

Windows / msys git için Çözüm

cevapları okuduktan sonra ben sadece bir dosya değiştirilmesine dayanır daha basit bir yol keşfetti.

  1. argüman 2 ve Bu dosya yolunda bir yerde olmalı 5. ile, sizin diff programı çağırmak için bir toplu iş dosyası oluşturun. (Yani nerede olduğunu bilmiyorsanız, c koydu: \ pencereler). Örneğin, "gitdiff.bat" için, diyelim. Benimki:

    @echo off
    REM This is gitdiff.bat
    "C:\Program Files\WinMerge\WinMergeU.exe" %2 %5
    
  2. Toplu iş dosyasına işaret etmek ortam değişkenini ayarlayın. Örneğin: GIT_EXTERNAL_DIFF=gitdiff.bat. Ya yazarak powershell yoluyla git config --global diff.external gitdiff.bat.

    aksi takdirde çalışmaz, tırnak kullanmak veya herhangi yol bilgilerini belirtmez için önemlidir. gitdiff.bat senin yolunda olmalıdır nedeni budur.

Eğer "git diff" yazdığınızda Şimdi sıra dış fark görüntüleyici açılmasına neden olur.

Cevap 21/02/2009 saat 20:10
kaynak kullanıcı

oy
6

İşte Windows için çalışan bir toplu iş dosyası var - DiffMerge varsayılan konumda yüklü varsayar, x64 kolları ters eğik çizgi yerine ileri gerekli kolları ve kendisini yükleme olanağı vardır. favori fark programla DiffMerge yerine kolay olmalıdır.

Yüklemek:

gitvdiff --install 

gitvdiff.bat:

@echo off

REM ---- Install? ----
REM To install, run gitvdiff --install

if %1==--install goto install



REM ---- Find DiffMerge ----

if DEFINED ProgramFiles^(x86^) (
    Set DIFF="%ProgramFiles(x86)%\SourceGear\DiffMerge\DiffMerge.exe"
) else (
    Set DIFF="%ProgramFiles%\SourceGear\DiffMerge\DiffMerge.exe"
)



REM ---- Switch forward slashes to back slashes ----

set oldW=%2
set oldW=%oldW:/=\%
set newW=%5
set newW=%newW:/=\%


REM ---- Launch DiffMerge ----

%DIFF% /title1="Old Version" %oldW% /title2="New Version" %newW%

goto :EOF



REM ---- Install ----
:install
set selfL=%~dpnx0
set selfL=%selfL:\=/%
@echo on
git config --global diff.external %selfL%
@echo off


:EOF
Cevap 09/04/2009 saat 03:21
kaynak kullanıcı

oy
37

Git sürümü 1.6.3 beri "var git difftool favori grafik diff aracı kullanmak için yapılandırabilirsiniz". Şu anda desteklenen dışı Kutudan olan KDiff3, Kompare, tkdiff, karışmak, xxdiff, ortaya, vimdiff, gvimdiff, ecmerge, yaygın ve opendiff ; Kullanmak istediğiniz aracı bu listede değilse, her zaman kullanabilirsiniz difftool.<tool>.cmd'yapılandırma seçeneği.

"Git difftool" "git diff" ile aynı seçeneklere kabul eder.

Cevap 23/05/2009 saat 12:37
kaynak kullanıcı

oy
194

Önceki tamamlamak için "diff.external" yapılandırma cevabı yukarıdaki:

As Jakub bahsettiği , Git1.6.3 tanıtıldı git difftool aslen Eylül 2008'de önerdi:

KULLANIM = '[--tool=tool] [--commit=ref] [--start=ref --end=ref] [--no-prompt] [file to merge]'
(Bakınız --extcmdbu cevabın son kısmında)

$LOCALBaşlangıç revizyon dosyanın içeriğini içerir ve $REMOTEbitiş revizyon dosyasının içeriğini içerir.
$BASEkel dosyasının içeriğini içerir

Temelde var git-mergetoolgit endeksi / worktree üzerinde çalışmak üzere modifiye.

Ya aşamalı veya unstaged değişiklikler varsa ve bir yan-yana fark izleyicide değişiklikleri (örneğin görmek istiyorum ne zaman bu komut dosyası için olağan bir kullanım durumu xxdiff, tkdiffvs.).

git difftool [<filename>*]

Başka bir örnek kullanım (bu revarg ayrıştırma daha iyi olabilir parçasıdır) aynı bilgiyi görmek istiyorum ama keyfi hareketin karşılaştırarak zaman olduğu

git difftool --start=HEAD^ --end=HEAD [-- <filename>*]

Eğer (örneğin bir etiketi) HEAD dışındaki bir şey için geçerli worktree karşılaştırmak istediğiniz zaman son kullanılma şeklidir

git difftool --commit=v1.0.0 [-- <filename>*]

Not: Git 2,5 beri git config diff.tool winmergeyeter!
Bkz " git mergetool WinMerge "

Ve Git 1.7.11 beri , sen seçeneği var --dir-diffbir dosya çifti başına bir kere iki geçici dizinleri doldurma yerine dış aracının bir örneğini çalıştırdıktan sonra bir anda iki dizin hiyerarşileri karşılaştırabilirsiniz dış fark araçları yumurtlamaya amacıyla,.


Git 2,5 Önce:

Yapılandırmak için Pratik durum difftoolözel diff aracı ile:

C:\myGitRepo>git config --global diff.tool winmerge
C:\myGitRepo>git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
C:\myGitRepo>git config --global difftool.prompt false

PATH bir dizin bölümünde saklanan winmerge.sh ile:

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" -u -e "$1" "$2" -dl "Local" -dr "Remote"

Eğer başka bir araç (KDiff3, P4Diff, ...) varsa, başka bir kabuk komut dosyası ve uygun oluşturmak difftool.myDiffTool.cmdyapılandırma yönergesi.
Sonra kolayca sahip araçlar geçiş yapabilirsiniz diff.toolyapılandırma.

Ayrıca bu var Dave tarafından blog girişi diğer ayrıntıları ekleyin.
(Ya bu soru için winmergeuseçenekler)

Bu ayarla ilgi winmerge.shkomut : Eğer hesap özel durumlar içine almaya özelleştirebilirsiniz.

Örneğin bakınız David Mermer 'in altında cevap ile ilgilenen bir örnek:

  • Yeni kökenli veya hedef Ya dosyalar
  • kaldırıldı menşe veya hedef Ya dosyalar

As Kem Mason bahsedildi onun cevabı , aynı zamanda yapabilirsiniz kullanarak herhangi bir sarmalayıcı önlemek --extcmdseçeneği :

--extcmd=<command>

Diffs görüntüleme için özel bir komut belirleyin. git-difftoolyapılandırılan varsayılan yok sayar ve ishal $command $LOCAL $REMOTEbu seçeneği belirtildiğinde.

Örneğin, bu nasıl gitk/ çalıştırmak herhangi kullanabilir diffaracı .

Cevap 04/06/2009 saat 09:25
kaynak kullanıcı

oy
33

Yeni git sayesinde difftool , sizin için bu ekleyerek onun bu kadar basit .gitconfig dosyası:

[diff]
    tool = any-name
[difftool "any-name"]
    cmd = "\"C:/path/to/my/ext/diff.exe\" \"$LOCAL\" \"$REMOTE\""

Ayrıca kontrol diffall , ben seri her açma can sıkıcı (IMO) varsayılan fark davranışını genişletmek için yazdığı basit bir komut dosyası.

Cevap 27/08/2009 saat 10:39
kaynak kullanıcı

oy
5

Önce 1.6.3 için git sürümlerinde bir fark aracı nasıl yapılandırılacağı bir linux sürümü (1.6.3 git'e difftool eklendi) için bu büyük bir özlü öğretici olduğunu,

kısaca:

Adım 1: .gitconfig Bu eklemek

[diff]
  external = git_diff_wrapper
[pager]
  diff =

Adım 2: Bir dosya adında git_diff_wrapper oluşturmak $ PATH içinde bir yere koymak

#!/bin/sh

vimdiff "$2" "$5"
Cevap 22/10/2009 saat 14:28
kaynak kullanıcı

oy
0

Ben ubuntu üzerinde Kompare kullanın:

sudo apt-get install kompare

iki dalı karşılaştırmak için:

git difftool -t kompare <my_branch> master
Cevap 15/02/2010 saat 18:33
kaynak kullanıcı

oy
105

sorulan biraz daha farklıdır sorulara cevap ruhu içinde. Bu çözümü deneyin:

$ meld my_project_using_git

Meld budala anlar ve son değişiklikleri etrafında gezinmeye sağlar.

Cevap 14/03/2010 saat 17:28
kaynak kullanıcı

oy
8

Eğer cygwin ile bu yapıyorsanız, kullanmak gerekebilir cygpath :

$ git config difftool.bc3.cmd "git-diff-bcomp-wrapper.sh \$LOCAL \$REMOTE"
$ cat git-diff-bcomp-wrapper.sh
#!/bin/sh
"c:/Program Files (x86)/Beyond Compare 3/BComp.exe" `cygpath -w $1` `cygpath -w $2`
Cevap 30/03/2010 saat 18:42
kaynak kullanıcı

oy
0

Sen xd denemek isteyebilirsiniz http://github.com/jiqingtang/xd GIT / SVN diff için GUI sarıcı olan. Bu bir fark aracı kendisi değil. Sen çalıştırmak xdçalıştırmak istediğiniz zaman git diffya svn diff, xemacs (ediff), birleşmek ve size dosyaların bir listesini, bir önizleme penceresi görünecek ve tkdiff, xxdiff, gvimdiff, emacs (ediff) dahil istediğiniz herhangi fark aracı, başlatabilir dağınık, Kompare ve KDiff3. Ayrıca herhangi bir özel aracı çalıştırabilirsiniz.

Maalesef aracı Windows desteklemez.

Bilgilendirme : Bu aracın yazarıyım.

Cevap 01/10/2010 saat 08:29
kaynak kullanıcı

oy
17

VonC cevabı üzerine kurulan aşağıdaki komutları ve komut dosyalarını kullanmak, dosya kaldırma ve eklemeler ile başa çıkmak için:

> git config --global diff.tool winmerge
> git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\" \"$BASE\""
> git config --global difftool.prompt false

Hangi global bu koyarak aynıdır .gitconfig:

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = winmerge.bat "$LOCAL" "$REMOTE" "$BASE"
[difftool]
    prompt = false

Ardından aşağıdaki koymak winmerge.shhangi yolda olması gerekir:

#!/bin/sh
NULL="/dev/null"
if [ "$2" = "$NULL" ] ; then
    echo "removed: $3"
elif [ "$1" = "$NULL" ] ; then
    echo "added: $3"
else
    echo "changed: $3"
    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub -dl "Base" -dr "Mine" "$1" "$2"
fi
Cevap 07/11/2010 saat 08:12
kaynak kullanıcı

oy
21

Bunun için bir ek var. Ben aracılığıyla düzenli varsayılan araçlarından biri (örn kaleydeskop) olarak desteklenmeyen bir fark uygulamasını kullanmak ister

git difftool -t

Ayrıca varsayılan sahip olmak ister diffsadece düzenli komut satırı olabilir, bu yüzden ayarGIT_EXTERNAL_DIFF değişkeni bir seçenek değildir.

Sen keyfi kullanabilirsiniz diffbu komutla bir defalık olarak uygulamayı:

git difftool --extcmd=/usr/bin/ksdiff

Bu sadece sizin belirlediğiniz komutuna 2 dosya geçer, bu nedenle muhtemelen ya bir sarmalayıcı gerek yoktur.

Cevap 03/02/2011 saat 01:16
kaynak kullanıcı

oy
6

Eğer Mac kullanıyorsanız ve XCode varsa, o zaman FileMerge yüklediniz. Terminal komut opendiff, bu nedenle hemen yapabilecekkengit difftool -t opendiff

Cevap 04/09/2011 saat 10:03
kaynak kullanıcı

oy
7

Bu aracı sh komut dosyaları için hiçbir ihtiyaç 7. pencerelerde benim için çalışıyor

.gitconfig içeriği:

    [diff]
      tool = kdiff3

    [difftool]
       prompt = false

    [difftool "kdiff3"]
      path = C:/Program Files (x86)/KDiff3/kdiff3.exe
      cmd = "$LOCAL" "$REMOTE"
Cevap 02/02/2012 saat 22:26
kaynak kullanıcı

oy
1

Ben bu biraz kullanıyorum ~/.gitconfiguzun zamandır:

[diff]
    external = ~/Dropbox/source/bash/git-meld

ile git-meld:

#!/bin/bash
if [ "$DISPLAY" = "" ];
then
    diff $2 $5
else
    meld $2 $5
fi

Ama şimdi hep grafiksel ortamda birleştirmesi kullanılarak yoruldum ve bu kurulum ile normale diff çağırmak için önemsiz değil, bu yüzden bu geçiş:

[alias]
    v =  "!sh -c 'if [ $# -eq 0 ] ; then git difftool -y -t meld ; else git difftool -y $@ ; fi' -"

Bu ayar ile, bu çalışmanın gibi şeyler:

git v
git v --staged
git v -t kompare
git v --staged -t tkdiff

Ve hala iyi eski tutmak için olsun git diff.

Cevap 11/07/2013 saat 08:36
kaynak kullanıcı

oy
2

Ben (tkdiff birlikte) burada fantezi şeyler denenmiş ve hiçbir şey benim için çalıştı. Bu yüzden aşağıdaki komut dosyası, tkgitdiff yazdı. Ben bunu yapmak gerekir onu yapar.

$ cat tkgitdiff
#!/bin/sh

#
# tkdiff for git.
# Gives you the diff between HEAD and the current state of your file.
#

newfile=$1
git diff HEAD -- $newfile > /tmp/patch.dat
cp $newfile /tmp
savedPWD=$PWD
cd /tmp
patch -R $newfile < patch.dat
cd $savedPWD
tkdiff /tmp/$newfile $newfile
Cevap 05/12/2013 saat 01:26
kaynak kullanıcı

oy
3

Eğer kullanabilirsiniz git difftool.

Eğer varsa, örneğin karışmak , sen branşlarda düzenleyebilir masterve develölçütü:

git config --global diff.external meld
git difftool master..devel
Cevap 06/12/2013 saat 12:23
kaynak kullanıcı

oy
0

Eğer (bir fark görüntüleyici ile birlikte gelir TortoiseSVN'ye yüklü çünkü, diyelim ki) zaten filetypes ile ilişkili bir fark aracı var başına sadece boru normal olsaydı git diffbir "geçici" dosyaya çıktı, o zaman sadece bilmek gerek kalmadan bu dosyayı doğrudan açmak izleyiciye hakkında hiçbir şey:

git diff > "~/temp.diff" && start "~/temp.diff"

Küresel bir takma ad olarak ayarlama daha iyi çalışır: git what

[alias]
    what = "!f() { git diff > "~/temp.diff" && start "~/temp.diff"; }; f"
Cevap 28/01/2014 saat 21:31
kaynak kullanıcı

oy
7

Yukarıdaki büyük yanıtlar kısa bir özeti:

git difftool --tool-help
git config --global diff.tool <chosen tool>
git config --global --add difftool.prompt false

Sonra (isteğe yanı dosya adını belirterek) yazarak kullanabilirsiniz:

git difftool
Cevap 04/11/2014 saat 10:36
kaynak kullanıcı

oy
5

birleştirmesi yükleyin

 # apt-get install meld

Sonra difftool olarak bu seçim

 $ git config --global diff.tool meld

tou konsol tipine çalıştırmak isterseniz:

 $ git difftool

Eğer grafik modu türü kullanmak isterseniz:

 $ git mergetool

Ve çıkış olacaktır:

 'git mergetool' will now attempt to use one of the following tools:
 meld opendiff kdiff3 tkdiff xxdiff tortoisemerge gvimdiff diffuse
 diffmerge ecmerge p4merge araxis bc3 codecompare emerge vimdiff
 Merging:
 www/css/style.css
 www/js/controllers.js

 Normal merge conflict for 'www/css/style.css':
   {local}: modified file
   {remote}: modified file
 Hit return to start merge resolution tool (meld):

Dolayısıyla, sadece birleştirmesi (varsayılan) kullanmak için enter tuşuna, bu, grafik modunu açın sihirli o birleştirme çözmek olduğunu kaydetmek ve basın hale getirecektir. Bu kadar

Cevap 19/09/2015 saat 01:46
kaynak kullanıcı

oy
0

Komut satırı için bir tane değilseniz kaplumbağa budala yüklerseniz o zaman doğru "Diff daha sonra" seçeneği ile bir tortoisegit alt menüsünü almak için bir dosyayı tıklayabilirsiniz.

Bunu daha sonra sağ ikinci dosyayı tıklayabilirsiniz ilk dosya üzerinde seçtiğinizde, tortoisegit alt menüye gidin ve "== yourfilehere == ile Diff" seçeneğini Bu sonucun tortoisegitmerge GUI verecektir.

Cevap 11/01/2016 saat 14:58
kaynak kullanıcı

oy
4

Mac OS X'te,

git difftool -t diffuse 

git klasöründe benim için işi yapar. diffuse yükleyerek, bir bağlantı noktasını kullanabilirsiniz -

sudo port install diffuse
Cevap 09/05/2016 saat 06:52
kaynak kullanıcı

oy
3

Diğer bazı harici fark araçları baktıktan sonra bunu buldum diffIntelliJ IDEA (Android Studio) görünümü benim için en iyi biridir.

Adım 1 - Kurulum IntelliJ IDEA komut satırından çalıştırılacak

Eğer fark aracı olarak IntelliJ IDEA kullanmak istiyorsanız, öncelikle kurulum IntelliJ IDEA talimatlarını izleyerek komut satırından çalıştırılacak gerektiğini burada :

MacOS veya UNIX üzerinde:

  1. Emin IntelliJ IDEA çalıştığından emin olun.
  2. Ana menüde, seçim Tools | Create Command-line Launcher. Iletişim kutusu Fırlatıcı Senaryo başlatıcısı script önerilen yolu ve adı ile açılır oluşturun. Sen varsayılan kabul veya kendi yol belirtebilirsiniz. Daha sonra gerekeceği için, bunun haber yapın. IntelliJ IDEA dışında, sizin yoluna başlatıcısı komut yolunu ve adını ekleyin.

Windows'ta:

  1. Yol sistem ortam değişkeni IntelliJ IDEA yürütülebilir konumunu belirtin. Bu durumda, herhangi bir dizinden IntelliJ IDEA yürütülebilir ve diğer IntelliJ IDEA komutlarını istemek mümkün olacak.

Adım 2 - difftool olarak IntelliJ IDEA kullanmak için git yapılandırmak

Yönergeleri takip Bu blog yazısı :

darbe

export INTELLIJ_HOME /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS
PATH=$IDEA_HOME $PATH

Balık

set INTELLIJ_HOME /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS
set PATH $INTELLIJ_HOME $PATH

Şimdi git config aşağıdaki ekleyin:

[merge]
   tool = intellij
[mergetool "intellij"]
   cmd = idea merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
   trustExitCode = true
[diff]
   tool = intellij
[difftool "intellij"]
   cmd = idea diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")

Sen bunu deneyebilirsiniz git difftoolyagit difftool HEAD~1

Cevap 20/06/2017 saat 22:09
kaynak kullanıcı

oy
1

Aşağıdaki buradaki diğer cevaplar panoda, ama benim için, bu yüzden burada tkdiff için yanıt 'sadece doğrusunu yazarak' var (çok fazla bilgi), zor olabilir:

git difftool --tool=tkdiff <path to the file to be diffed>

Sen tkdiff için favori Diffing aracının yürütülebilir adı kullanabilirsiniz. Sürece (örn tkdiff), (ya da en sevdiğiniz Diffing aracı) PATH içinde olduğu gibi, bu başlatılacak.

Cevap 18/12/2018 saat 17:01
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more