Does Git flow deletes branch on remote server?
Pergunta
I am using git along with git flow. Here git flow has a develop
branch. Whenever i need to start feature i type
git flow feature start new
a new branch feature/new
is created. Then i do the changes and commit them using
git push origin feature/new
After comitting the changes I finish feature using
git flow feature finish new
it deletes feature/new
branch locally. Now I am switched to develop branch by git flow and I again type
git push origin develop
which make changes to remote server develop
branch
If I type git branch -a
, the new branch got deleted from the local but it is there on the server with name remotes/origin/feature/new
Does git flow delete branches on remote server which are deleted at my local machine?
Please tell me if I am making some mistake.
Solução
Looking at the source it seems that the remote feature branch is deleted only if you call git flow feature finish
with -F
.
However, this fetches the remote before finishing the feature. From the docs:
-F fetch from $ORIGIN before performing finish
Otherwise you can delete the remote branch manually with:
git push origin :feature/new
Outras dicas
May I suggest using the git-flow AVH Edition.
Like Stefan said, the original version only deletes the remote branch when you use -F
, which is kinda strange. The AVH Edition fixes this quirky behavior, it will always delete the local and remote feature branch on a finish, unless you specify either
--keep
, which keeps the local and remote.--keeplocal
, which keeps the local, but deletes the remote.--keepremote
, which keeps the remote, but deletes the local.
You can find git-flow AVH Edition on github.
What I had to do:
git flow feature delete -f name_feature
The -f is necessary if there are changes inside the feature branch.
git push origin --delete feature/name_feature
That is to delete the remote branch as well.