> Once the branch is created, you can't force its creation, because it is
> already created.
Sorry to not be agree, in the man page of git branch:
-f, --force
Reset <branchname> to <startpoint> if <branchname> exists already.
Without -f git branch refuses to change an existing branch. In combination with
-d (or --delete), allow
deleting the branch irrespective of its merged status. In
combination with -m (or --move), allow renaming the branch even if the new
branch name already exists.
The behavior I was expecting with
git checkout -b -f "branch_name"
is a checkout on a forced branch creation at <startpoint>.
So the only solution for me is :
git branch -f "branch_name" && git checkout "branch_name"
So to resume:
- This is not an issue, just a divergence between my logic and git
implementation.
- The message "Fatal: '-f' is not a valid branch name." is maybe not optimal,
and it may better be " Fatal: you trying to force the creation of a branch.
Please do "git branch -f" if you know what you're doing"
I still don't know if you understand me,
But I really appreciate that you take some time to answer me.
Regards,
Joris
-----Message d'origine-----
De : Randall S. Becker <[email protected]>
Envoyé : lundi 28 janvier 2019 16:20
À : COLLOMB Joris -EXT <[email protected]>; [email protected]
Objet : RE: Git checkout multiple options issue
On January 28, 2019 9:25, COLLOMB Joris wrote:
> -----Message d'origine-----
>> De : Randall S. Becker <[email protected]> Envoyé : lundi 28
>> janvier
>> 2019 15:12 À : COLLOMB Joris -EXT
>> <[email protected]>;
>> [email protected] Objet : RE: Git checkout multiple options issue
>>
>> On January 28, 2019 8:25, COLLOMB Joris wrote:
>> > git checkout -fb "branch_name"
>> > (force branch creation and checkout it)
>> >
>> > doesn't work (even if option a separated).
>> >
>> > I don't know if this is consider as an issue, but here it is.
>>
>> I think you might mean (which works on every platform I have):
>>
>> git checkout -f -b "branch_name"
>>
>> There is no provision for aggregating options into one. -fb (invalid)
>> is
not the
>> same as -f -b (valid).
> git checkout -f -b "branch_name"
> gives me " Fatal: A branch named 'branch_name' already exists."
Once the branch is created, you can't force its creation, because it is already
created. Just
git checkout "branch_name"
is sufficient at this point. git is correct to complain that you are trying to
create a branch that already exists.
git log --decorate --oneline --graph --all
will show you where your branch points in history at any given moment in time
in a convenient form.
> I understand that here the checkout is force, but not the branch creation.
> The opposite option order doesn't work:
>
> git checkout -b -f "branch_name"
> gives me "Fatal: '-f' is not a valid branch name."
In this case, you are asking git to create a branch named -f (the -b branch
option). Then "branch_name" becomes the reference that would be used to find
the commit that -f would have pointed to. However, -f is not a valid name
because it is an option and git is correct to reject it.
git checkout options are described here:
https://git-scm.com/docs/git-checkout
Regards,
Randall
________________________________
CONFIDENTIALITY : This e-mail and any attachments are confidential and may be
privileged. If you are not a named recipient, please notify the sender
immediately and do not disclose the contents to another person, use it for any
purpose or store or copy the information in any medium.