你如何推动一个单一的Git分支(没有其他分支)?
我正在使用本地的git存储库。 有两个分支, master
和feature_x
。
我想将feature_x
推送到远程仓库,但我不想在master
分支上推送更改。
从我的feature_x
分支( feature_x
分支已经存在于远程)的工作将一个git push origin feature_x
?
我不想在我的盒子上testing这个,因为我现在无法推送给主人。
是的,只要做到以下几点
git checkout feature_x git push origin feature_x
默认情况下, git push
更新所有远程分支。 但你可以configurationgit只更新当前分支到上游。
git config push.default upstream
这意味着git只会在您执行git push时更新当前(签出)分支。
其他有效的选项是:
-
nothing
不要:除非明确给出refspec,否则不要推送任何东西(出错)。 这主要是针对那些想要避免错误的人而始终明确的。 -
matching
:推送两端同名的所有分支。 (在版本1.7.11之前的默认选项) -
upstream
:将当前分支推送到其上游分支。 这种模式只有在你推送到你通常需要的同一个仓库(例如中央工作stream程 )时才有意义。 本地和远程分支不需要有相同的名称 。 -
tracking
:弃用,而是使用upstream
。 -
current
:将当前分支推送到接收端同名远程分支。 适用于中央和非中央工作stream程。 -
simple
:在集中式工作stream程中[从版本1.7.11开始可用],像upstream
一样工作,如果上游分支的名称与本地名称不同,则拒绝推送。 当推送到一个不同于远程的远程设备时,您通常会从current
工作。 这是最安全的select,适合初学者。 这个模式已经成为Git 2.0中的默认模式。
在Karthik Bose的答案之上稍作更新 – 您可以在全局configurationgit来影响您的所有工作空间,使其行为如此:
git config --global push.default upstream
假设你有一个本地分支foo,一个叫做origin的远程和一个远程分支origin / master。
要将foo的内容推送到origin / master,首先需要设置其上游:
git checkout foo git branch -u origin/master
然后你可以使用以下命令推送到这个分支
git push origin HEAD:master
在最后一个命令中,你可以添加 – 强制使用fooreplaceorigin / master的所有历史logging。