2010-03-27 3 views

Antwort

39

Die -- trennt die Pfade von den anderen Optionen. Vom documentation:

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... 

Wenn diese Schreibweise nicht existieren die folgenden zwei Befehle wäre zweideutig:

git checkout <tree-ish> <path1> <path2> 
git checkout <path1> <path2> <path3> 

Mit der -- Notation klar ist, was gemeint ist:

git checkout <tree-ish> -- <path1> <path2> 
git checkout -- <path1> <path2> <path3> 

Die Dokumentation, die ich oben verlinkt habe, enthält eine example von, wenn Sie es brauchen könnten:

$ git Kasse hello.c

Wenn Sie eine unglückliche Niederlassung haben, die hello.c genannt wird, würde dieser Schritt als eine Anweisung verwechselt werden zu diesem Zweig zu wechseln. Sie sollten stattdessen schreiben:

$ git checkout - hello.c

+2

Natürlich, wenn Sie einen Pfad namens '-f', dass andere Fragen aufwirft, wie, warum Sie einen Pfad brauchen' genannt - f'. :) –

+0

@John Feminella: Richtig, ich fand ein hoffentlich besseres Beispiel. –

+0

Das - trennt nicht nur Pfade von Optionen. Sie müssen dieses Trennzeichen auch von einer Datei namens "git checkout - -" trennen. –