Git签出 - 如何从另一个分支签出文件

521 阅读3分钟

当你在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 命令。

6ii6ur

如果你有兴趣了解更多关于Git或TypeScript等Web开发技术,请访问我的博客

谢谢你阅读这篇文章。