如何从多个提交中推送多个分支?

git github 匿名 | 2020-02-27 02:24:21


在发布Windows应用程序之前,我从未使用过
git
,因此我从未在命令行中使用过它。
所以我的情况是:
我在
master
上做了一些提交,然后切换了分支并在那里做了一些提交。当我在windows应用程序中单击了
sync
时(我认为它确实是
git push
),令我惊讶的是,我的所有提交都被推送到了我的新分支,甚至是我在
master
中所做的提交,因为这是windows应用程序的行为,我想我必须使用命令行。
什么是正确的
git push
命令来将提交推送到远程上正确的分支?





4 答案



要推送所有分支(refs/heads下的refs),请使用以下命令(原点是您的遥控器):
git push origin --all

您还可以在配置中将
push.default
设置为
matching
以默认推送两端同名的所有分支。例如:
git config --global push.default matching

自从Git 2.0以来,默认值是
simple
这是最安全的选项。

2020-02-27 02:24:30
匿名


如果要推送多个特定分支(例如branch1和branch2),可以使用:
git push origin branch1 branch2 

在Git>=2.4中,此操作可以自动完成(即,如果未能推送任何指定分支,则不会推送):
git push --atomic origin branch1 branch2 

2020-02-27 02:24:41
匿名


git push origin
默认情况下将从所有跟踪分支推送到远程。
git push origin my-new-branch
将只推送到您的新分支。
我不相信会有任何简单或可能意外的事情将两个不同分支的提交推送到同一分支并在远程上进行合并。
我猜新的分支机构在它的历史上有师父的承诺。若要查看这是否正确,请在本地运行
git log my-new-branch
并查看这些提交是否在您的历史记录中。
如果是,则当您“切换分支”时,可能会在新提交之后从master分支,因此新分支拥有历史记录中的所有提交,而不仅仅是该分支唯一的提交。

2020-02-27 02:24:54
匿名


迟交答案,但我将分享我的解决方案。
最后,我的
/foo/.git/config
文件看起来像:
[core]
...
[remote "dev"]
url = http://dev.foobar.com/foo.git
fetch = +refs/heads/*:refs/remotes/dev/*
[remote "pro"]
url = http://pro.foobar.com/foo.git
fetch = +refs/heads/*:refs/remotes/pro/*
[remote "all"]
url = http://dev.foobar.com/foo.git
url = http://pro.foobar.com/foo.git
[http]
postBuffer = 524288000

和command;
git push all --all

信用:同时推送到多个Git存储库

2020-02-27 02:25:03
匿名


World is powered by solitude
备案号:湘ICP备19012068号