我正在使用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是否会删除远程服务器上的分支,这些分支会在我的本地计算机上删除?
如果我犯了一些错误,请告诉我。
答案 0 :(得分:36)
查看source,只有当您使用git flow feature finish
致电-F
时,才会删除远程功能分支。
但是,这会在完成功能之前获取遥控器。来自docs:
-F 在执行完成之前从$ ORIGIN获取
否则,您可以{:3}}手动执行:
git push origin :feature/new
答案 1 :(得分:20)
我建议使用git-flow AVH Edition。
就像Stefan所说,原始版本只在您使用-F
时删除远程分支,这有点奇怪。 AVH版修复了这种古怪的行为,除非您指定
--keep
,保留本地和远程。--keeplocal
,保留本地,但删除遥控器。--keepremote
,用于保留远程,但删除本地。您可以在github上找到git-flow AVH Edition。
答案 2 :(得分:4)
我必须做的事情:
git flow feature delete -f name_feature
如果功能分支内部发生更改,则必须使用-f。
git push origin --delete feature/name_feature
也就是删除远程分支。