【问题标题】:Does Git flow deletes branch on remote server?Git 流程是否会删除远程服务器上的分支?
【发布时间】:2012-06-22 07:08:15
【问题描述】:

我正在使用 git 和 git flow。这里 git flow 有一个 develop 分支。每当我需要启动功能时,我都会输入

git flow feature start new

创建了一个新分支feature/new。然后我进行更改并使用

提交
git push origin feature/new

提交更改后,我使用

完成功能
git flow feature finish new

删除 feature/new 本地分支。现在我通过 git flow 切换到开发分支,然后我再次输入

git push origin develop

更改远程服务器develop 分支

如果我输入git branch -a,新分支会从本地删除,但它在服务器上,名称为remotes/origin/feature/new

git flow 是否会删除远程服务器上的分支,这些分支会在我的本地计算机上被删除?

如果我犯了一些错误,请告诉我。

【问题讨论】:

    标签: git git-flow


    【解决方案1】:

    查看source 似乎只有当您使用-F 调用git flow feature finish 时才会删除远程功能分支。

    但是,这会在完成该功能之前获取遥控器。来自docs

    -F 在完成之前从 $ORIGIN 获取

    否则你可以手动delete the remote branch

    git push origin :feature/new
    

    【讨论】:

    • 另请注意,如果您从未将该分支向上游推送到远程服务器,例如“git push --set-upstream origin branch”,则在调用“git flow feature finish”时,您将永远不会拥有远程分支.
    【解决方案2】:

    我可以建议使用 git-flow AVH 版。

    就像 Stefan 说的,原版只在你使用-F 时删除远程分支,这有点奇怪。 AVH 版修复了这个古怪的行为,它总是会在完成时删除本地和远程功能分支,除非你指定任何一个

    • --keep,保持本地和远程。
    • --keeplocal,保留本地,删除远程。
    • --keepremote,保留远程,删除本地。

    您可以在github 上找到 git-flow AVH 版。

    【讨论】:

    • AVH 版是否也能更好地处理feature pull?我只是设置了一个赏金,因为原始 git-flow 中的 feature pull 非常令人困惑(stackoverflow.com/questions/18412750/…),感谢任何输入以获得规范的答案。
    • 功能拉取命令将在 2.0 版本中被弃用,只有功能跟踪可用。
    • 有没有办法自动标记功能分支 HEAD 在它删除之前的位置?我喜欢在 git-web 中看到绿色的小标签,但是当遥控器被删除时,这些标签就消失了。
    • 注意:git-flow AVH 版本是 Git for Windows 的默认版本。您可以通过运行git flow version 来确认这一点。
    • 另外,您可以更改默认行为,例如,git config gitflow.feature.finish.keepremote true
    【解决方案3】:

    我必须做的:

    git flow feature delete -f name_feature
    

    如果特性分支内部有变化,-f 是必要的。

    git push origin --delete feature/name_feature
    

    也就是删除远程分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 2021-04-15
      • 2016-12-30
      • 2016-02-01
      • 2021-08-22
      • 2013-07-02
      • 2013-03-25
      相关资源
      最近更新 更多