9

我希望将 git 与多个远程存储库一起使用。我有我的中央 git 服务器(又名origin),以及我的本地开发机器。我想做的是从 kernel.org 的 git repo 中下载最新的 linux 内核。然后我将进行一些更改,然后将整个修改后的 repo 推送到我自己的 git 服务器上。

我已经成功地做到了这一点(只需执行几次 git remote add ——一次用于原点,一次用于 kernel.org)。但是,如果我从头开始克隆源,我无法将 kernel.org 视为远程。

有没有办法推送remote add命令?还是每次我希望从 kernel.org 中提取更改(在新机器上),我是否必须手动添加它?

此外,当我创建本地分支时,我让它跟踪来自 kernel.org 的远程分支。由于我在新克隆上看不到 kernel.org 作为远程,这是否意味着该分支不再跟踪 kernel.org?

4

4 回答 4

3
git push origin --mirror

会将所有本地参考推送到原点。

于 2012-08-20T13:54:35.153 回答
2

如果您每次都克隆,您将丢失该存储库配置中的内容。这包括reflogstash和仅举几例remotesrerere cache不要这样做。推拉不会移动这些人工制品。你从推拉中得到的只是引用和满足它所需的对象。远程设置不会被传播。克隆是每次回购操作一次。您实际上根本不能使用克隆。git init您可以使用然后手动添加遥控器,git remote add然后创建一个空仓库git fetch

于 2012-08-18T18:05:54.377 回答
0

正如其他答案中所述,我想要做的事情并不能真正在 Git 中完成(共享遥控器)。所以我打算做的是避免在开发人员机器上需要 3rd 方遥控器。我将创建一个与 kernel.org 远程分支相同的本地分支。然后我会将这个本地分支推送到我的 git 服务器(源)。然后我将创建一个 cron 脚本,它将:

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

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

你认为呢?

谢谢

于 2012-08-20T17:12:11.693 回答
0

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

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

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

    #!/usr/bin/env bash

    git 远程添加上游 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

    # 请注意,您不需要添加origin克隆时设置的遥控器。

  3. 在新机器上克隆后,运行git-bootstrap脚本。

于 2016-05-10T23:58:51.183 回答