2016-11-30 59 views
11

Bir repo oluşturdum, içinde bir dosya oluşturdum, dosyaya bazı içerikler koydum ve dosyayı işledim. Şimdi, eklenmiş olan dosyayı ve buna eklenen satırları ideal olarak göstermesi gereken bu işlemin bir çeşitliliğini görmek isterim. Ancak, bu, repo için ilk işlem olduğundan, git diff HEAD^ HEAD, fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree. değerini döndürür.İlk işlemden Git farkı nasıl alınır?

Bu nasıl çözülebilir? İlk işlemde eklenen dosyaların farkını görmenin bir yolu var mı?

+1

'git show' çalışabilir. Fakat ilk fark daima null'dan bütün içeriğe. – ElpieKay

+0

@ElpieKay Bu çalışır, ancak bu da taahhüt özetini içerir. Sadece özeti olmadan sadece diff yazdırmak mümkün olması mümkün Eğer ben 'göstermek istiyorum? –

+0

'git show --pretty = %% | sed 1,2d'. '%%', yalnızca bir satır çıkaran herhangi bir yer tutucu olabilir, ör. '% h',% t'. – ElpieKay

cevap

38

Sen yapabilirsiniz:

git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD 

4b825dc642cb6eb9a060e54bf8d69288fbee4904 Git "boş ağaç" kimliği olduğunu ve her depoda her zaman kullanılabilir.

+3

@CharlesBaley, Cool, Bu sha-1 kodunu nereden alıyorsunuz? – gzh

+0

Güzel, bu belgelenmiş bir şey mi yoksa gelecekte de gidebilen sallantılı işlevselliğe mi dayanıyor? –

+2

Git, sha1 kullanmaya devam ederken boş ağacın kimliği değişmeyecek. Daha iyi okunabilmesi için '$ (printf '' | git hash-object -t tree --stdin)' komutunu kullanabilirsiniz. –