[英]Git - Pull from one remote repo, push to another: can I push names of remotes?
我希望使用git与多个远程回购。 我有我的中央git服务器(aka origin
),以及我的本地开发机器。 我想要做的是从kernel.org的git repo下载最新的linux内核。 然后我将进行一些更改,然后将整个修改后的repo推送到我自己的git服务器。
我已经设法做到这一点(只需要做git remote添加几次 - 一个用于原点,一个用于kernel.org)。 但是,如果我从头开始克隆原点,我无法将kernel.org视为远程。
有没有办法推送remote add
命令? 或者是每次我想从kernel.org(在新机器上)引入更改时,我是否必须手动添加它?
此外,当我创建我的本地分支时,我让它跟踪来自kernel.org的远程分支。 由于我无法在新克隆上看到kernel.org作为遥控器,这是否意味着该分支不再跟踪kernel.org了?
如果您每次都克隆,那么您将失去该repo配置中的内容。 这包括reflog
, stash
, remotes
和rerere cache
,仅举几例。 不要这样做。 推拉不会移动这些人工制品。 你从推拉中得到的只是参考和满足它的对象。 远程设置不会传播。 克隆是每次回购操作一次。 实际上你根本不能使用克隆。 您可以使用git init
创建一个空的repo,然后使用git remote add
手动git remote add
,然后使用git fetch
。
git push origin --mirror
将所有本地裁判推向原点。
正如其他答案中所述,我正在尝试做的事情无法在Git(共享遥控器)中完成。 所以我打算做的是避免在开发者机器上使用第三方遥控器。 我将创建一个与kernel.org远程分支相同的本地分支。 然后我将这个本地分支推送到我的git服务器(origin)。 然后我将创建一个cron脚本,它将:
这意味着我将在我自己的git服务器上拥有kernel.org分支的副本,可以在我们的本地团队中正常跟踪。 然后所有合并都可以正常进行......
你认为呢?
谢谢
“共享遥控器”并不完全可能。 不过你可以试试这个。
将shell脚本放在repo的根目录(或scripts/
)目录中。 例如,调用git-bootstrap
。
在脚本中,添加遥控器,如下所示:
#!/ usr / bin / env bash
git remote add upstream git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
#请注意,您无需像克隆时设置的那样添加origin
远程。
克隆到新计算机后,运行git-bootstrap
脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.