在GitHub
发布Windows应用程序之前,我从未使用过git
,所以我从未在命令行中使用过它。
我的情况是这样的
我在master
上做了一些提交,然后切换分支,在那里也做了一些提交。所有这些都不需要推送到GitHub。当我在windows应用程序中点击sync
时(我假设是git push
),令我惊讶的是,我所有的提交都被推送到了我的新分支-甚至是我在master
中所做的提交。
由于这是windows应用程序的行为,我想我必须使用命令行。
什么是正确的git push
命令来将提交推送到远程上的正确分支?
6条答案
按热度按时间mnemlml81#
要推送所有分支(refs/heads下的refs),请使用以下命令(其中origin是您的remote):
您也可以在配置中将
push.default
设置为matching
,以默认推送两端同名的所有分支。例如:从Git 20,默认值为
simple
,这是最安全的选项。mftmpeh82#
如果你想推送几个特定的分支(例如branch1和branch2),你可以用途:
在Git中〉= 2。4该操作可以原子地完成(即,即,如果它未能推送指定的任何分支,则将不推送任何东西):
5tmbdcev3#
默认情况下,
git push origin
将从所有跟踪分支向上推送到远程。git push origin my-new-branch
只推送新分支。我不相信有什么简单的或可能的意外,将提交从两个不同的分支推到同一个分支,并在远程进行合并。
我猜这个新分支的历史记录中有master的提交。要查看是否正确,请在本地运行
git log my-new-branch
,查看这些提交是否在您的历史记录中。如果是这样的话,当你“切换分支”的时候,你可能在新的提交完成之后从master * 分支出来,所以新的分支拥有历史上所有的提交,而不仅仅是那个分支独有的提交。
kx7yvsdv4#
答案晚了,但我会分享我的解决方案,为我工作。
最后,
/foo/.git/config
文件看起来像:和指挥;
积分:Pushing to Multiple Git Repositories Simultaneously
zwghvu4y5#
你可以做一个
用正则表达式替换
<pattern>
以匹配分支名称,就这样了。如果这是您首次提交此分支,则可以添加
--set-upstream origin
fdbelqdn6#
别忘了,你有弯曲的变化(在你的工作树)和开关分支,这些变化可能会持续。然后你添加/提交/推送,并感到惊讶。