Git-从一个远程回购中拉,推到另一个:我可以推远程回购的名称吗?
我希望将git用于多个远程回购。我有我的中央git服务器(akaGit-从一个远程回购中拉,推到另一个:我可以推远程回购的名称吗?,git,version-control,git-remote,Git,Version Control,Git Remote,我希望将git用于多个远程回购。我有我的中央git服务器(akaorigin),还有我的本地开发机器。我想做的是从kernel.org的gitrepo中下载最新的linux内核。然后我会做一些更改,然后将整个修改后的repo推送到我自己的git服务器上 我成功地做到了这一点(只需做几次git remote添加,一次用于源代码,一次用于kernel.org)。然而,如果我从头开始克隆origin,我就无法将kernel.org视为远程站点 是否有办法推动远程添加命令?还是每次我想从kernel.o
origin
),还有我的本地开发机器。我想做的是从kernel.org的gitrepo中下载最新的linux内核。然后我会做一些更改,然后将整个修改后的repo推送到我自己的git服务器上
我成功地做到了这一点(只需做几次git remote添加,一次用于源代码,一次用于kernel.org)。然而,如果我从头开始克隆origin,我就无法将kernel.org视为远程站点
是否有办法推动远程添加
命令?还是每次我想从kernel.org(在新机器上)引入更改时,我都必须手动添加它
另外,当我创建本地分支时,我让它跟踪kernel.org中的一个远程分支。由于我无法将kernel.org视为新克隆上的远程站点,这是否意味着该分支不再跟踪kernel.org?如果每次都进行克隆,您将丢失该repo的配置。这包括
reflog
,stash
,remotes
和rere-cache
等等。不要这样做。推拉不会移动这些人工制品。推拉所得到的只是参考和满足这些要求所需的对象。远程设置不会传播。克隆是每次回购一次的操作。实际上,您根本不能使用克隆。您可以使用git init
进行空回购,然后使用git remote add
手动添加遥控器,然后使用git fetch
git push origin --mirror
将所有本地引用推送到原点。如其他答案中所述,我试图做的事情实际上无法在Git(共享远程)中完成。因此,我打算做的是避免开发人员机器上需要第三方远程设备。我将创建一个与kernel.org远程分支相同的本地分支。然后,我将把这个本地分支推送到我的git服务器(origin)。然后,我将创建一个cron脚本,该脚本将:
- 克隆我在上面创建的分支
- 为kernel.org添加远程
- 执行git拉取以更新分支
- 添加、提交和推送
谢谢完全不可能“共享遥控器”。不过你可以试试这个
scripts/
)中。例如,将其称为git bootstrap源站
远程,因为这是在克隆时设置的git引导程序
脚本您是否拥有对中央git服务器的shell访问权限?您是否每次都要从kernel.org获取更改时进行git克隆?@elcanibal,不,我没有。我将kernel.org添加为远程,并创建了一个新分支,跟踪kernel.org的远程分支。您是否尝试过此方法?我们需要克隆的原因是多个开发人员可以访问此repo。这是否意味着每个开发人员都必须手动为kernel.org添加一个远程应用程序,如果他们希望从中删除更改的话?这不是重新选择的理由。您可以有一个从kernel.org提取的回购协议,其他人从该回购协议提取。或者,让每个开发人员添加一个内核。很抱歉,我不太明白这是如何回答这个问题的。你已经说明了为什么我们不必使用克隆,但你还没有回答这个问题。问题在于标准push命令不发送远程配置。这意味着,无论其他开发人员使用什么方式从源站获取回购,他们仍然没有远程设备。Push不会发送配置。倾斜将始终擦除您设置的任何远程设备。可能有一种方法可以通过git属性和自定义脚本来实现。但这总是需要用户做一些事情来启动。这与安全有关。通过提交您不应该影响其他人的计算机将要连接到的位置的内容。此外,假设我在服务器上保留cron repo的副本,我将不需要在cron脚本中克隆或添加远程设备-这只需要第一次完成。