@pmiossec So, I think this is a really good start! However, git tend to make quite difficult to overwrite local changes, and so do we.

As seen before, creating an unborn branch is quite easy (just by making the `HEAD` point to a non existing branch). This state doesn't mean that it's safe to blindly merge.

Considering these, I think that in this scenario, the code should:
 - Ensure the Index is empty
 - Ensure a Diff between the workdir and the commit tree doesn't report any updated entries.

Performing those checks should ensure that the user won't loose any data, while still allowing your scenario.