2010-07-30 6 views
5

Sistemimdeki bazı metinleri girdiğim bir metin dosyası (.yml) var. Ama şimdi bir anda hangi yeni çizgileri bilmemiz gerekiyor. Problemimizi çözmek için git kullanmayı düşündüm, ama bunu yapmak için açık bir komut bulamıyorum.Aynı dosyada git farkını ilk ve son işlem arasında kullanma

Bu mümkün mü?

+0

olası yinelenen [Git:? Aynı dalda iki farklı kaydedilmesini arasındaki aynı dosyayı diff nasıl] (http://stackoverflow.com/questions/3338126/git Sen yukarıdaki satırı değişebilir -böstermek-için-aynı-dosya-iki-farklı-aynı-şube-on-aynı-şube) –

cevap

11

Öyle gibi bir şey withs kaydedilmesini bir listesini alabilirsiniz:

git log --abbrev-commit --pretty=oneline

böyle bir şey olmalı Hangi:

commitD Description 
commitC Description 
commitB Description 
commitA Description 

senin iki hareketin kaydedilmesini seçin ve bunları aşağıda yerine:

git diff <commitA>..<commitB> -- /path/to/file

+0

benim sorunum çözüldü, thnx! –

3
o Oluşan liste tersine olarak ...

git diff -w `git rev-list HEAD --reverse | head -1`..HEAD -- <path/file> 

O 1 sayısı ile beraber --reverse kullanmaya çalışmaz (-1/--max-sayısı 1):

tek bir komut ile bunu yapabilir kesildikten sonra. Yani ya kullanıyorsunuz - kafa komutuyla birlikte ya da kuyruk -1'i kullanıyorsunuz.

Satır sonları ve sekme ve boşluk kullanımı anahtarlarındaki geçişler nedeniyle -w'yi kullanmam gerekiyordu.

Dosya ilk işlemde eklenmediyse, bu beklendiği gibi çalışmayabilir!

git diff -w `git rev-list HEAD --reverse -- <path/file> | head -1`..HEAD -- <path/file>