Git跨分支推送提交,从一个分支到另一个分支获取提交
我有一个github repoGit跨分支推送提交,从一个分支到另一个分支获取提交,git,Git,我有一个github repoorigin,它有两个分支,master和new。我有两台工作机器A和B。我首先在B中初始化此回购,在B中的本地分支正在跟踪主机。然后我创建了一个分支,并在fornew中进行了一些提交 但是,现在我正试图将B中的“再次提交”推到new。我该怎么办?或者我错在哪里 我是git的新手,我自己也读过一些教程。仍然不知道如何或为什么。请帮忙 ============这看起来怎么样======================== -----------(master)----
origin
,它有两个分支,master
和new
。我有两台工作机器A和B。我首先在B中初始化此回购,在B中的本地分支正在跟踪主机
。然后我创建了一个分支,并在fornew
中进行了一些提交
但是,现在我正试图将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中再次提交了一些内容。您的问题暗示了这一点,但实际上并没有在任何地方提到它。你的画与它相矛盾。尽量保持一致。