在"git checkout - files"中," - "是什么意思?

e-s*_*tis 29 git

它是"选项结束"我习惯在bash中看到(如果是,我们为什么要使用它)或者它是指数或HEAD的Git表示法?

Mar*_*ers 42

--路径与其他选项分开.从文档:

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... 
Run Code Online (Sandbox Code Playgroud)

如果此表示法不存在,则以下两个命令将不明确:

git checkout <tree-ish> <path1> <path2>
git checkout <path1> <path2> <path3>
Run Code Online (Sandbox Code Playgroud)

有了这个--符号很明显是指:

git checkout <tree-ish> -- <path1> <path2>
git checkout -- <path1> <path2> <path3>
Run Code Online (Sandbox Code Playgroud)

我上面链接的文档包含了一个您可能需要它的示例:

$ git checkout hello.c

如果您有一个名为hello.c的不幸分支,则此步骤将被混淆为切换到该分支的指令.你应该写:

$ git checkout - hello.c

  • 当然,如果你有一个名为`-f`的路径,那就引发了其他问题,比如你需要一个名为`-f`的路径.:) (2认同)