如何使用 SourceTree 克隆单个文件?

How to clone a single file using SourceTree?

假设我有两个与在线存储库同步的项目:

现在,如果我在 Project-B 中需要 A2,我如何使用 SourceTree 将文件 A2 从 repo-A 克隆到 Project-B?

我认为一个解决方案是使用 git 子模块。参考:https://git-scm.com/docs/git-submodule

子模块可帮助您将另一个存储库与现有存储库嵌套在一起。我看到的唯一(可能)缺点是,它将创建一个包含子项目的文件夹(在您的情况下,文件夹 B 中的文件夹 A)。我认为这应该不是问题。

步骤:

  1. (请确保您的 git 项目目录是干净的,因为我们在下面使用 git reset HEAD
  2. cd path/to/main-project
  3. git 子模块添加 http://url-to-subproject
  4. 触摸。git忽略
  5. 将您的子模块项目文件夹名称添加到文件中。例如,如果您的子模块文件夹是 'a',则添加 a/*.
  6. git 重置 HEAD
  7. 当您 运行 git diff 时,您应该仍然看到 .git 模块和 .git 忽略。
  8. 提交这些文件。

用法: 如果你想更新你的子项目,只需将 cd 更新到其中,然后在你的子项目文件夹中更新 运行 git fetchgit pull(从远程拉取的正常操作)。

希望这对您有所帮助。