Özel "seçenek" --, "bu noktadan sonraki her argümanı, nasıl görünürse görünsün bir dosya adı olarak ele almak " anlamına gelir. Bu Git'e özgü değil, genel bir Unix komut satırı kuralı. Normalde, bir bağımsız değişkenin bir seçenek yerine dosya adı olduğunu açıklığa kavuşturmak için kullanırsınız , örn.
rm -f # does nothing
rm -- -f # deletes a file named "-f"
git checkout1 ayrıca --, sonraki bağımsız değişkenlerin, hangi kaydetmeyi istediğinizi belirten isteğe bağlı "ağaçsı" parametresi olmadığı anlamına da gelir.
Dolayısıyla bu bağlamda her zaman kullanmak güvenlidir-- , ancak geri döndürmek istediğiniz dosyanın adı ile başlayan veya bir dalın adıyla aynı olduğunda buna ihtiyacınız vardır -. Dal / dosya belirsizliğini giderme için bazı örnekler:
git checkout README # would normally discard uncommitted changes
# to the _file_ "README"
git checkout master # would normally switch the working copy to
# the _branch_ "master"
git checkout -- master # discard uncommitted changes to the _file_ "master"
ve seçenek / dosya belirsizliği giderme:
git checkout -p -- README # interactively discard uncommitted changes
# to the file "README"
git checkout -- -p README # unconditionally discard all uncommitted
# changes to the files "-p" and "README"
İsmi ile başlayan bir şubeniz varsa ne yaparsınız bilmiyorum -. Belki ilk etapta bunu yapmayın.
Bu modda 1 ; "ödeme" birkaç başka şey de yapabilir. Git'in neden diğer VCS'ler gibi "geri döndürme" veya git'in kendi terimleriyle daha anlamlı olabileceğini düşündüğüm "sıfırlama" yerine "ödünç verme" alt komutunun bir modu olarak "onaylanmamış değişiklikleri at" ı uygulamayı seçtiğini hiç anlamadım.