当你在Git中处理一个仓库时,你可能需要从另一个分支签出一个特定的文件。
幸运的是,Git 提供了许多可能的方法来快速完成这项任务。其中一个最简单的解决方案是使用git checkout 命令,将指定的文件作为参数。
在这篇文章中,我们将分析这个问题的不同解决方案,并介绍每一种解决方案所需要遵循的流程。
让我们开始吧 😎。
Git 签出用例
你正在处理一个名为feature/A 的分支,其中包含一个名为utils.js 的文件。
你有另一个名为feature/B 的分支,其中有一个更新的utils.js 文件。
你想签出该文件,并把它从名为feature/B 的分支带到名为feature/A 的分支。
下面是这个任务的三种可能的解决方案。
解决方案 1:使用git checkout 命令
git checkout 命令提供了一个简单的方法,从另一个分支获得一个文件或文件夹。
下面是从另一个分支取出一个文件的语法:
git checkout <other-branch-name> -- path/to/your/folder
以下是要遵循的过程。
1.签出到你想复制文件的那个分支:
git checkout feature/A
2.2. 一旦你在正确的分支上,就复制该文件:
git checkout feature/B -- utils.js
3.3. 使用git status命令,确保文件已经被复制。
4.提交并推送到远程。
当使用checkout命令时,你也可以得到:
- 来自另一个分支的文件夹
- 通过指定每一个文件获得多个文件
另外,请注意,你可以从储藏室获得一个文件/文件夹。
解决方案2:使用git restore 命令
另一个选择是使用git switch 命令与git restore 命令。
如果你从未听说过这两个命令,那也没关系。它们是比较新的。Git在2019年的2.23版本中引入了它们。
这两个命令的目的是分担git checkout 命令的职责,以简化用户的操作。
git restore 命令恢复了工作树。
git switch 命令则是切换分支。
下面是从另一个分支获取文件的过程。
1.切换到你想检出文件的那个分支:
git switch feature/A
2.2. 从另一个分支获取文件:
git restore --source feature/B -- utils.js
3.提交并推送更改:
解决方案3:使用git show 命令
最后,我们可以使用git show 命令。
以下是要遵循的过程。
1.切换到工作分支:
git switch feature/A
2.从另一个分支获取文件:
git show feature/B:path/utils.js > path/utils.js
3.提交并推送更改。
注意:这次你需要指定从你的目录根部的相对路径。
最后的想法
正如你所看到的,从另一个分支获取文件并不是什么火箭科学。
当我在日常生活中需要这样做时,我通常使用git checkout 命令。

如果你有兴趣了解更多关于Git或TypeScript等Web开发技术,请访问我的博客。
谢谢你阅读这篇文章。