将Git的主分支推送到第二个远程仓库

3
我有一个已经存在的git仓库,托管在我们公司的在线git账户上。现在我想在我的客户的在线git账户中设置第二个远程仓库。我想保持我的公司的仓库作为日常分享代码的主要手段,而客户的仓库只用于当前发布的主分支。
我已经使用了
git remote add <clientName> <clientRepoUrl> 

在我的git配置文件中添加新的远程仓库。
我可以使用以下命令:
git push <clientName> --all # pushes up the repo and its refs for the first time

将整个repo推送到新的远程仓库。

但是如果我省略--all参数会怎样?主分支上的合并提交会如何显示?这样做会有效吗?


是的。当您推送单个分支时,该分支的所有提交历史记录都会被推送到远程。 - Leon
@Leon,你是指当我使用--all参数时吗? - Matthew Dresser
不,我的意思是只推送一个分支,例如 git push <clientName> mastergit push <clientName>(没有 refspec)可能会或可能不会导致推送单个分支(取决于您的 remote.<clientName>.push 设置)。 - Leon
当你使用 --all 参数时,实际上是告诉 git 将本地机器上所有已知的分支推送到远程。这意味着发生在这些分支上的所有提交也会被推送 - 如果某个提交是合并提交,你很可能会在第二个远程仓库看到它。 - Hevlastka
1个回答

1

如果我省略了--all参数怎么办?

你可以只推送 master 到第二个远程仓库 (git push <clientName> master)。
这将包括从master可访问的所有提交,包括合并提交的父提交。

x--x--x--x--M --x (master)
    \      /
     y----y       (branchY)

仅推送 master 将推送 y 个提交,尽管参考 branchY 本身不会被推送。


谢谢你的回答。没关系,我不介意提交显示出来,只要它们的分支视图不显示我们制作的每个功能分支即可。 - Matthew Dresser
1
@MatthewDresser 是的,因为你没有使用 --all,所以你不会推送任何其他分支名称。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接