2012-11-10 16 views
176

Jakie jest znaczenie podwójnych myślników przed nazwą pliku w tym poleceniu git?Znaczenie Git checkout podwójne kreski

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

Czy są one obowiązkowe? Jest to równoznaczne z

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

To wyrażenie powłoki. Zobacz http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean – iltempo

+9

@iltempo: Dla Gita jest nieco inaczej. W przypadku Git oddziela drzewo od ścieżek, w przypadku gdy drzewa i ścieżki mogą wyglądać tak samo. –

+0

@Dietrich_Epp. Widzę. Dzięki za wytłumaczenie. – iltempo

Odpowiedz

254

Załóżmy, że mam plik o nazwie path/to/file.txt w moim repozytorium Git, a chcę, aby przywrócić na nim zmian.

git checkout path/to/file.txt 

Teraz załóżmy, że plik o nazwie master ...

git checkout master 

Whoops! Zamiast tego zmieniono gałęzie. -- oddziela drzewo, które chcesz sprawdzić, od plików, które chcesz sprawdzić.

git checkout -- master 

Pomaga również nas, jeśli niektóre freako dodany plik o nazwie -f do naszego repozytorium:

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

Jest to udokumentowane w git-checkout: Argument Disambiguation.

+10

Dotyczy to wielu poleceń basha, a nie tylko poleceń git, tak? – NHDaly

+28

@NHDaly: Tak, to prawda. Jednak notatka terminologiczna: "Bash" ma tylko kilka poleceń (może około 20), większość poleceń jest oddzielnymi programami od Basha. W rzeczywistości jest to część standardu POSIX, w którym '-" może być użyte do oddzielenia opcji od innych argumentów, więc zobaczysz go na komendach takich jak 'cp' i' mv' (które nie są częścią Basha). –

+4

Jakiś pomysł, dlaczego ta składnia nie jest poprawnie opisana w dokumentacji polecenia 'checkout'? – TanguyP

67

Podwójny myślnik "-" oznacza "koniec flag wiersza poleceń", tzn. Nakazuje poprzednie polecenie, aby nie próbował analizować, co dzieje się po opcjach wiersza poleceń.

Powiązane problemy