繁体   English   中英

Git - 从一个远程仓库拉出来,推到另一个:我可以推送遥控器的名字吗?

[英]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配置中的内容。 这包括reflogstashremotesrerere cache ,仅举几例。 不要这样做。 推拉不会移动这些人工制品。 你从推拉中得到的只是参考和满足它的对象。 远程设置不会传播。 克隆是每次回购操作一次。 实际上你根本不能使用克隆。 您可以使用git init创建一个空的repo,然后使用git remote add手动git remote add ,然后使用git fetch

git push origin --mirror

将所有本地裁判推向原点。

正如其他答案中所述,我正在尝试做的事情无法在Git(共享遥控器)中完成。 所以我打算做的是避免在开发者机器上使用第三方遥控器。 我将创建一个与kernel.org远程分支相同的本地分支。 然后我将这个本地分支推送到我的git服务器(origin)。 然后我将创建一个cron脚本,它将:

  • 克隆我在上面创建的分支。
  • 为kernel.org添加一个遥控器
  • 做一个git pull来更新分支
  • 添加,提交和推送

这意味着我将在我自己的git服务器上拥有kernel.org分支的副本,可以在我们的本地团队中正常跟踪。 然后所有合并都可以正常进行......

你认为呢?

谢谢

“共享遥控器”并不完全可能。 不过你可以试试这个。

  1. 将shell脚本放在repo的根目录(或scripts/ )目录中。 例如,调用git-bootstrap

  2. 在脚本中,添加遥控器,如下所示:

    #!/ usr / bin / env bash

    git remote add upstream git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

    #请注意,您无需像克隆时设置的那样添加origin远程。

  3. 克隆到新计算机后,运行git-bootstrap脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM