Git跨分支推送提交,从一个分支到另一个分支获取提交

Git跨分支推送提交,从一个分支到另一个分支获取提交,git,Git,我有一个github repoorigin,它有两个分支,master和new。我有两台工作机器A和B。我首先在B中初始化此回购,在B中的本地分支正在跟踪主机。然后我创建了一个分支,并在fornew中进行了一些提交 但是,现在我正试图将B中的“再次提交”推到new。我该怎么办?或者我错在哪里 我是git的新手,我自己也读过一些教程。仍然不知道如何或为什么。请帮忙 ============这看起来怎么样======================== -----------(master)----

我有一个github repo
origin
,它有两个分支,
master
new
。我有两台工作机器A和B。我首先在B中初始化此回购,在B中的本地分支正在跟踪
主机
。然后我创建了一个分支,并在for
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

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

如果我很清楚您想要的是在同一分支中将更改从A推送到B,对吗

git没有中央存储库,所以您可以直接将其从a推送到B

如果您有某种中央存储库,您可以直接推到它,然后拉入其他本地机器

git push origin new
假设您的中央存储库别名是源

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

git remote add <new_name> <machine B uri>
git远程添加
new\u name只是一个用于识别其他本地计算机的名称,因此您可以像对origin一样推送到它,只需更改名称即可

git push <new_name> new
git推新
如果同时在B中的新分支中有任何更改,您将无法直接推送,您需要首先拉取更改

如果要保留更改,可以先重新设置更改的基础:

git pull --rebase <new_name> new
git pull——重新设置新的基址
然后推动你的改变

git push <new_name> new
git推新

如果有帮助,请告诉我。

您说您在提交到
master
后创建了分支
new
,因此
new
应该已经包含了B拥有的所有内容。@Joost是的,我在B中再次提交了一些内容。您的问题暗示了这一点,但实际上并没有在任何地方提到它。你的画与它相矛盾。尽量保持一致。