2012-11-10 22 views
176

Bu git komutunda dosya adından önce çift çizgi ne anlama geliyor?Git checkout double tire

git checkout --ours -- path/to/file.txt 
git checkout --theirs -- path/to/file.txt 

Bunlar zorunlu mudur? o benim Git depo path/to/file.txt adlı bir dosya varsa ve ben üzerinde değişiklikleri geri istiyorum varsayalım

git checkout --ours path/to/file.txt 
git checkout --theirs path/to/file.txt 
+19

Bu bir kabuk ifadesidir. Bkz. Http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean – iltempo

+9

@iltempo: Git için biraz farklı. Git için, ağaçların ve yolların aynı görünebileceği durumlarda, ağacı yolları yollar. –

+0

@Dietrich_Epp. Anlıyorum. Netleştirdiğiniz için teşekkürler. – iltempo

cevap

254

eşdeğerdir.

git checkout path/to/file.txt 

Şimdi ... dosya master adında olduğu

git checkout master 

Whoops varsayalım! Bunun yerine dalları değişti. --, kontrol etmek istediğiniz dosyalardan kontrol etmek istediğiniz ağacı ayırır.

git checkout -- master 

bazı Freako bizim deposuna -f adlı bir dosya eklediyseniz Ayrıca bize yardımcı olur:

git checkout -f  # wrong 
git checkout -- -f # right 

Bu git-checkout: Argument Disambiguation belgelenmiştir.

+10

Bu, pek bash komutları için geçerli, sadece git komutları için değil, evet? – NHDaly

+28

@NHDaly: Evet, bu doğru. Bununla birlikte, bir terminoloji notu: "Bash" sadece birkaç komutu (belki 20 ya da öylesine) vardır, çoğu komut Bash'in ayrı programlarıdır. Aslında POSIX standardının bir parçası olan '' 'seçenekleri diğer argümanlardan ayırmak için kullanılabiliyor, böylece 'cp' ve 'mv' (Bash'in parçası olmayan) komutları üzerinde göreceksiniz. –

+4

Bu sözdiziminin neden "checkout" komut belgelerinde doğru bir şekilde açıklanmadığı hakkında bir fikriniz var mı? – TanguyP

67

Çift çizgi "-", "komut satırı bayraklarının sonu" anlamına gelir, yani önceki komutun komut satırı seçeneklerinden sonra gelenleri ayrıştırmaya çalışmamasını söyler.