“git push origin <branch>”和“git flow feature publish”的区别是什么?

4
这两个命令都将代码推送到相应的分支,以便其他开发人员可以在该分支上工作。那么这两个命令的确切区别是什么?

1
“git push <remote> <branch>” 是大家都认可且不需要扩展的标准方式,“git flow feature publish” 可能只是一个愚蠢的包装器,但我仍然没有确定,因为没有文档。 - Ry-
@Ry- 嗯,这并不像现在从 @KernelKoder 得到的答案那么直截了当:git flow publish 配置了底层属性,确保分支被正确合并 - 而不是将提交压缩到 develop 中而没有痕迹。因此,在这种情况下,git push 被认为是有害的。 - vintprox
@vintproykt:不,如果您知道如何进行合并提交,那么“git push”就完全没有问题。 - Ry-
2个回答

5
在执行git flow feature publish命令时,git-flow会在后台运行以下几个附加命令:
推送分支
git push origin my-feature 配置分支的远程属性
git config "branch.my-feature.remote" "origin" 配置分支的合并属性
git config "branch.my-feature.merge" "refs/heads/my-feature" 检出分支
git checkout "my-feature"

1
这里有一个相当不错的 git-flow 命令详细解析,位于以下的 gist 上:https://gist.github.com/JamesMGreene/cdd0ac49f90c987e45ac。简要概括就是:需要额外的操作来确保你正在做“正确的事情”(例如强制完成的功能合并到开发分支等)。 - piers7
有些人似乎没有意识到的是,你只需要执行一次 git flow feature publish 来建立和配置远程分支,而后续的更改可以通过重复执行 git push 命令来更新远程分支。 - NeilG

-2

在这个问题之前,我没有听说过 git-flow,但它是一组 Git 扩展,为 Vincent Driessen 的分支模型提供高级仓库操作,可以在 github 上找到。

基本上这意味着除非你安装了这个插件,否则你不能使用它。

因此,git push origin 在任何地方都可以使用,而 git flow feature publish 只能在安装了额外功能的系统上使用。


1
只是为了澄清:您可以在不安装git flow的情况下使用Driessen分支模型,但需要更多的打字。安装git flow提供了方便的快捷命令。 - NeilG

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