Git flow post-initialization issue recovery

I recently removed my development branch using git branch -D development in order to clear some commits it had that I did not want to preserve between feature commits.

The result was that finishing the (still present and active) feature branch I had open through the Git Flow button caused a complaint that git flow had not yet been initialized (it had).

This resulted in the rather annoying need to track down its real location within the hierarchy and run git flow init again by hand.

Ideally Source Tree should automatically attempt to recover from detectable and straightforward git flow init issues such as this, saving people the lengthy run-around.

3 answers

Hi Walter,

With git flow the idea is that you don't manually create/delete branches yourself, you solely rely on git flow to do this. Upon deleting branches git flow will definitely get confused as it's expecting the branches it manages itself to be present. If they're not then it assumes git flow hasn't been initialised. This isn't a SourceTree thing, you'll probably find the exact same error is returned if you try to do the same thing in the terminal.

We'd love to be able to automatically recover from cases like this, but git flow creates branches and it may have been a case of an accidental removal of a branch. We never want to make any assumptions about the users' particular situation otherwise we could do damage to their repository, this is why the user explicitly makes the decision to initialise their git flow repository.

Hopefully that helps, if you've got any more questions or comments feel free to fire away!

@Kieran Senior, so my take on this and on using SourceTree in general and SourceTree GitFlow is to execute all commands within and using the and not to execute commands from the command line to prevent these types of inconsistencies which makes sense, but it takes a little getting used to especially when starting to use the in your workflow, but fortunately the learning curve seems to not be too steep.

The only reason we say to do it from within SourceTree is because people often use different scripts from the one SourceTree uses which creates inconsistencies. It's not because we're trying to coerce users into using SourceTree.

Technically you could do it from both the terminal and from SourceTree provided your git-flow configurations matched so the branch prefixes matched correctly. Otherwise, one script would create a different naming convention to the other meaning the terminal and SourceTree would produce different output for the same function.

Hope that helps

@Kieran Senior, thanks for the clarification which makes sense from my previous comment.

If you go to Sourcetree Settings via the gear icon on the right-hand side of the app', then click on Edit Config File, you'll see what branches etc. gitflow expects. In your case, you could have probably just recreated the local development branch, and gitflow would have worked as expected.

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Oct 08, 2018 in Teamwork

If you could delete any meeting from your calendar, which one would it be?

Let’s face it: most of us have too many meetings on our calendars. And few things are a bigger waste of time than recurring meetings that no longer provide any value to attendees (or the busines...

373 views 11 9
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you