如何将新远程分支添加到现有 Git 项目?

How do I add a branch from a new remote to an existing Git project?

我有一个现有的本地 Git 存储库,并且想添加一个与不相关的远程 Git 存储库上的分支相对应的分支(最好没有完整的历史记录+),我可能偶尔会从中提取更新。我一直在为如何实现这一点而苦苦挣扎,并想出了

git checkout -b template
git remote add framework <repo_url>
git pull --rebase=true framework template:template --force

想知道这是否真的是最好的方法。

是否有更紧凑或更惯用的方式将新远程分支添加到现有 Git 项目?


+尝试获取部分历史记录的问题(--depth 作为 pull 的附加选项是它创建了一个结构这让我所有的 Git 工具(Tower、GitX 等)都崩溃了。

使用

设置遥控器
git remote add -t template -f framework <repo_url>

这也将只为远程的一个分支获取引用;然后使用

将分支检出到新的本地分支
git checkout -b template framework/template

现在您可以使用

从本地分支从您原来的远程分支拉出这个分支
git pull

更好的方法是使用git subtree/submodule。 Subtree/submodule 将在您的主存储库中创建内部存储库。

您可以阅读更多关于子模块和子树的内容 here and here