推送一个“未审核”的分支

144
我想推送一个分支(不是当前分支),而无需先检出该分支,我应该如何实现?
这是我会做的:
#currently in master
git checkout feature
git push origin feature
git checkout master

但是查看功能可能会引起冲突,我能不能推送另一个分支而不是当前的分支?


可能涉及不同的解决方案:https://dev59.com/D6zla4cB1Zd3GeqPD-bh - Xun Yang
10
请注意,这种做法存在风险:如果您有推送钩子,它们将在您当前的分支上运行,而不是您想要推送的分支上运行。 - Xun Yang
1个回答

220

简而言之:

git push origin feature:feature

或者更短:

git push origin feature

5
feature:feature 是必须的吗?还是只需要写 git push origin feature 就可以了? - Glemi
6
不是必须的;请查看 手册 中的refspec一节。 - trojanfoe
3
对我来说它不起作用,显示错误:src refspec dev does not match any // error: failed to push some refs - toioioi
如果您设置了git钩子(pre-push),那么运行git钩子的分支是哪个:您所在的分支还是您正在推送的分支?我认为应该是前者。例如:如果我在功能分支上,但想要将主分支推送到远程而不必先检出主分支。我相信git钩子将在功能分支上运行而不是在主分支上运行。 - nodebase
@nodebase 这可能取决于您如何编写挂钩脚本;我不是git hooks的专家,但我找到了一个示例,可以阻止对master的强制推送。 - trojanfoe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接