Git push commit cross branch,从一个分支到另一个分支获取提交

时间:2016-04-12 13:45:02

标签: git

我有一个github repo origin,它有两个分支masternew。我有两台工作机器A和B.我首先在B中创建这个仓库,B中的本地分支跟踪master。然后我创建了一个分支并在A中为new做了一些提交。

但是,现在我正试图再次推动我的承诺'在B到new。我该怎么办?或者我哪里错了?

我是git的新手,我确实为自己阅读了一些教程。仍然不知道如何或为什么。请帮忙。

==========这看起来如何========================

-----------(master)--------------->(new)
              |                      |
              |                      |
          tracked by B         tracked by A
              |                      |
              B---->1.some commit      A----> 2.brach and some commit
                 -->3.some commit again

2 个答案:

答案 0 :(得分:1)

git checkout new && git cherry-pick master && git push

答案 1 :(得分:1)

如果我理解你想要的是将你的变化从A推到B,在同一个分支中,这是正确的吗?

git没有中央存储库,因此您可以将其直接从A推送到B.

如果您使用某种中央存储库,只需按下它,然后再拉入其他本地计算机。

git push origin new

假设您的中央存储库别名是来源。

您还可以添加工作机器B:

git remote add <new_name> <machine B uri>

new_name 只是一个用于标识其他本地计算机的名称,因此您可以像对原点一样推送它,只需更改名称

git push <new_name> new

如果B中新分支的同时发生任何变化,您将无法直接推送,您需要先进行更改。

如果你想保留history simpler,你可以先修改你的更改:

git pull --rebase <new_name> new

然后推送您的更改

git push <new_name> new

如果有帮助,请告诉我。