2012-02-02 15 views

cevap

79

aşağıdaki çalışır: Geçmişte

git diff master:foo foo

, bu olabilir: Ayrıca

git diff foo master:foo

+6

ben 'git diff' ilişkin senin cevabını gördüğü an çalışmalı, hep http://stackoverflow.com/questions/5256249/git-diff- düşünmek doesnt-show-yeterli/5257065 # 5257065 – VonC

+0

@VonC: teşekkürler, bunu çizmeye değdiğini bilmek güzel :) Bu arada, cevabımı güncellediğim tuhaflığı anlıyor musunuz? –

+2

Parametreleri yol argümanlarından ayırmak için '' ile denediniz mi? 'git diff - master: foo foo' – VonC

14

: git diff foo master:foo yana git diff master..feature foo

çalışmıyor Benim için dizinlerde.

+0

Ben de. Windows şey mi? –

+0

@ScottStafford Ubuntu'dayım, yani hayır, sadece bir Windows şey değil. – ArtBIT

+0

Açıkça her iki şube adını verdiğim sürece (windows) 'git diff branch1: foo master: foo' – Meep

8
git difftool -v tag/branch filename 
72

İstediğiniz böylece, belirli bir dal adıyla çalışma ağaç karşılaştırmak için çalışıyoruz bu: (git-diff man sayfasına bakınız git-diff bu formdan olan

git diff master -- foo 

)

git diff [--options] <commit> [--] [<path>...] 
     This form is to view the changes you have in your working tree 
     relative to the named <commit>. You can use HEAD to compare it with 
     the latest commit, or a branch name to compare with the tip of a 
     different branch. 

Bilginize, daha doğrusu sizin çalışma ağacında her şeyden, ayrıca sahnelenen ettik ne diff görüntüleme için --cached (aka --staged) seçeneği vardır:

git diff [--options] --cached [<commit>] [--] [<path>...] 
     This form is to view the changes you staged for the next commit 
     relative to the named <commit>. 
     ... 
     --staged is a synonym of --cached. 
+1

Teşekkürler. Neden olduğu hakkında bir fikriniz yok, ama sadece bu cevap Linux'ta git 1.8.1 ile çalıştı. – srking

+0

Mükemmel, teşekkürler. Şu andaki şubemin adını diff komutuna dahil etmek istediğim için asıldı, ama bunun gerekli olmadığını görüyorum. – yoyo

+0

Bu, birkaç ay önce benim için çalıştı, ama şimdi görünmüyor. Şu anda git sürüm 2.7.4 (Apple Git-66); Daha önce ne yaptığımı bilmiyorum. – hBrent

7
git diff mybranch master -- file 

da

+3

Bu sadece, dosyanın geçerli çalışma kopyası değil, benimkine bağlı dosyalar için çalışır. – yoyo

İlgili konular