【问题标题】:How do I store the changes to a git repository in another server-side repository?如何将更改存储到另一个服务器端存储库中的 git 存储库?
【发布时间】:2013-10-16 13:54:53
【问题描述】:

我正在为我的特定 ARM 板更改 Linux 内核。

我已经克隆了这个存储库:http://arago-project.org/git/projects/?p=linux-am33x.git

我想提交我所做的更改并将它们推送到我自己的服务器,而不是 arago 服务器。我目前正在对我的工作目录进行差异化并将差异提交到我自己的服务器端存储库。有没有更优雅的方法?

请注意,我不想在我的服务器上克隆整个 arago 存储库。我所做的改变是微不足道的,这个 repo 不是。根据下面的答案,我已经这样做了:

$ git remote add myrepo ...`
$ git fetch myrepo
$ git checkout -b mybranch origin/v3.2-staging
$ git push myrepo mybranch

我原以为不会上传任何内容,因为尚未提交任何内容。但是所有 v3.2-staging 都开始上传。我想做的是将我的本地更改提交到 mybranch。只有那个应该被推送到 myrepo/mybranch。什么样的checkout 会允许这样做?

【问题讨论】:

    标签: linux git


    【解决方案1】:

    假设您所在的分支是mybranch,而您要访问的遥控器将调用myremote

    • 添加遥控器
      git remote add myremote [GIT_URL|PATH|URL|SSH-LINE]
    • 推送您的分支(以及可能对其进行的任何更改)
      git push myremote mybranch

    然后,您必须选择和管理您自己想要在未来签出或跟踪的内容

    • 如果您以后想同时获取所有遥控器而不是 git fetch,请执行 git remote update

    • 1234563 @ :
      git config remote.origin.pushurl user@user.com:repo.git(检查是否有更好的方法来完成这部分)

    建议您阅读 git-book http://git-scm.com/book/en/Git-Basics-Working-with-Remotes 中使用远程仓库的部分

    【讨论】:

    • 谢谢。书的链接很有用。它将帮助我使用 git“真正知道我在做什么”,这是我并不总是遵循的概念:p
    • 强烈强烈推荐阅读或至少略读一下
    • 好的,所以我执行了以下操作:$ git remote add myrepo ...$ git fetch myrepo$ git checkout -b mybranch origin/v3.2-staging$ git push myrepo mybranch 我原以为不会上传任何内容,因为尚未提交任何内容。但是所有 v3.2-staging 都开始上传(我认为)。我想做的是将我的本地更改提交到 mybranch。只有那个应该被推送到 myrepo/mybranch。
    • @diskless 它确实做到了它应该做的。您根据origin/v3.2-staging 的内容检查了一个名为mybranch 的本地分支(并且根据您的配置也跟踪它)。然后,您将此分支推送到您的myrepo。如果它在那里不存在,它会将这个分支上传到那个 repo。无论您是否已向本地分支提交任何内容都无关紧要,相关的只是该分支是否存在于您要推送到的远程分支上,以及它是否是一个快进合并。
    • @diskless 我修改了我的答案,强调我认为你被“你的改变”绊倒了;实际上,您的第一次更改就是分支的存在。
    【解决方案2】:

    使用

    git format-patch -1 <commit_SHA>
    

    【讨论】:

      【解决方案3】:

      将您的服务器添加为新的remote,使用git add remote;然后当您推/拉时,您可以指定与哪个服务器通信。

      您可能还想使用git config 更改默认遥控器以更改master.remotemaster.merge(git 实际上允许推送和拉取不同的默认值,您可能希望在此处使用)。

      【讨论】:

      • 啊,这看起来完全符合我的需要。让我研究一下git add remote。将pullpush 发送到不同的服务器会很棒。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 2020-10-25
      • 2023-04-06
      • 2020-12-19
      • 1970-01-01
      • 2015-09-14
      • 2015-08-22
      • 2020-09-03
      • 1970-01-01
      相关资源
      最近更新 更多