如何使用 SourceTree 克隆单个文件?
How to clone a single file using SourceTree?
假设我有两个与在线存储库同步的项目:
- 项目 - A 包含文件 A1、A2、A3 (repo-A)
- 项目 - B 包含文件 B1、B2、B3 (repo-B)
现在,如果我在 Project-B 中需要 A2,我如何使用 SourceTree 将文件 A2 从 repo-A 克隆到 Project-B?
我认为一个解决方案是使用 git 子模块。参考:https://git-scm.com/docs/git-submodule
子模块可帮助您将另一个存储库与现有存储库嵌套在一起。我看到的唯一(可能)缺点是,它将创建一个包含子项目的文件夹(在您的情况下,文件夹 B 中的文件夹 A)。我认为这应该不是问题。
步骤:
- (请确保您的 git 项目目录是干净的,因为我们在下面使用
git
reset HEAD
)
- cd path/to/main-project
- git 子模块添加 http://url-to-subproject
- 触摸。git忽略
- 将您的子模块项目文件夹名称添加到文件中。例如,如果您的子模块文件夹是 'a',则添加
a/*
.
- git 重置 HEAD
- 当您 运行
git diff
时,您应该仍然看到 .git 模块和 .git 忽略。
- 提交这些文件。
用法:
如果你想更新你的子项目,只需将 cd
更新到其中,然后在你的子项目文件夹中更新 运行 git fetch
和 git pull
(从远程拉取的正常操作)。
希望这对您有所帮助。
假设我有两个与在线存储库同步的项目:
- 项目 - A 包含文件 A1、A2、A3 (repo-A)
- 项目 - B 包含文件 B1、B2、B3 (repo-B)
现在,如果我在 Project-B 中需要 A2,我如何使用 SourceTree 将文件 A2 从 repo-A 克隆到 Project-B?
我认为一个解决方案是使用 git 子模块。参考:https://git-scm.com/docs/git-submodule
子模块可帮助您将另一个存储库与现有存储库嵌套在一起。我看到的唯一(可能)缺点是,它将创建一个包含子项目的文件夹(在您的情况下,文件夹 B 中的文件夹 A)。我认为这应该不是问题。
步骤:
- (请确保您的 git 项目目录是干净的,因为我们在下面使用
git reset HEAD
) - cd path/to/main-project
- git 子模块添加 http://url-to-subproject
- 触摸。git忽略
- 将您的子模块项目文件夹名称添加到文件中。例如,如果您的子模块文件夹是 'a',则添加
a/*
. - git 重置 HEAD
- 当您 运行
git diff
时,您应该仍然看到 .git 模块和 .git 忽略。 - 提交这些文件。
用法:
如果你想更新你的子项目,只需将 cd
更新到其中,然后在你的子项目文件夹中更新 运行 git fetch
和 git pull
(从远程拉取的正常操作)。
希望这对您有所帮助。