> 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 <rsbecker@xxxxxxxxxxxxx> Envoyé : lundi 28 janvier 2019 16:20 À : COLLOMB Joris -EXT <joris.collomb-ext@xxxxxxxxxxxxxxx>; git@xxxxxxxxxxxxxxx Objet : RE: Git checkout multiple options issue On January 28, 2019 9:25, COLLOMB Joris wrote: > -----Message d'origine----- >> De : Randall S. Becker <rsbecker@xxxxxxxxxxxxx> Envoyé : lundi 28 >> janvier >> 2019 15:12 À : COLLOMB Joris -EXT >> <joris.collomb-ext@xxxxxxxxxxxxxxx>; >> git@xxxxxxxxxxxxxxx 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.