从分支的Git签出文件,而不更改索引

Cha*_*own 8 git vcs-checkout

在我的git开发中,我使用以下checkout命令结构将来自其他分支的单独文件引入到我的工作目录中。

git checkout [<tree-ish>] [--] <pathspec>…?
Run Code Online (Sandbox Code Playgroud)

根据文档,这也将文件更新为我的索引,就好像我要提交该文件一样—如果我不想提交该文件,则剩下了从索引中删除它的额外步骤。(我们正在使用二进制文件进行开发:(这种工作方式有助于测试我们的个人工作,该工作可能与并行工作的另一位开发人员的工作有关)

有什么方法可以从分支/提交中拉出/签出单个文件,从而更新工作目录而不是索引?


我想我可以将两个步骤混为一个命令,但是我很好奇是否已经有一个(单个)git命令能够完成此操作。

Nik*_*olm 24

git restore --source=<tree> --worktree <pathspec>...
Run Code Online (Sandbox Code Playgroud)

请参阅联机帮助页

  • 现在,这是比[已接受的答案](/sf/answers/3511102031/)更好的答案(而在编写它时,这是最好的答案)。 (2认同)

Fra*_*sco 5

另一种方式是

git show otherBranch:fileName > fileName
Run Code Online (Sandbox Code Playgroud)

这将创建一个新文件,该文件的内容在另一个分支中

无论如何,如果您的工作流程需要经常执行此步骤,我将创建一个别名