Git 在不更改索引的情况下从分支签出文件

Git checkout file from branch without changing index

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

git checkout [<tree-ish>] [--] <pathspec>…​

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

有什么方法可以从 branch/commit 中 pull/checkout 单个文件,以便它更新工作目录而不是索引?


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

另一种方法是

git show otherBranch:fileName > fileName

这将创建一个新文件,其中包含另一个分支中文件的内容

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

git restore --source=<tree> --worktree <pathspec>...

参见the manpage