Re: 'HEAD' is not a commit (according to git-checkout)
- From
René Scharfe <l.s.r@web.de>
- Date
- May 21, 2020, 19:49 UTC
- Message-ID
- <01fe37e2-6188-c148-0795-ec4a9066effd@web.de>
- In-Reply-To
- <CACqwCQiLpZ1HFzgJw0p0KR3jXNsxkhjXmF_huzhv+qkMZmybBQ@mail.gmail.com>
Am 21.05.20 um 21:00 schrieb Dana Dahlstrom:
Show 15 quoted lines
> What did you do before the bug happened? (Steps to reproduce your issue) > > $ git clone https://github.com/githubtraining/hellogitworld.git > $ cd hellogitworld > $ git checkout -b work -t master HEAD > fatal: 'HEAD' is not a commit and a branch 'work' cannot be created from it > $ git show -s --oneline > ef7bebf (HEAD -> master, origin/master, origin/HEAD) Fix groupId […] > $ git checkout -b work -t master ef7bebf > fatal: 'ef7bebf' is not a commit and a branch 'work' cannot be created from it > > What did you expect to happen? (Expected behavior) > > I expected a new branch named 'work' to be created and checked out, > pointing to commit ef7bebf and with upstream branch set to 'master'.
The option -t/--track doesn't take an argument. Try this:
git checkout -b work -t master
... or perhaps this if you want to track the upstream branch instead of the local one:
git checkout -b work -t origin/master
These days I'd use this, though:
git switch --create=work --track origin/master
Show 6 quoted lines
> What happened instead? (Actual behavior) > > I saw these erroneous messages (copied from above): > > fatal: 'HEAD' is not a commit and a branch 'work' cannot be created from it > fatal: 'ef7bebf' is not a commit and a branch 'work' cannot be created from it
This message is puzzling, but what it means is that the extra "HEAD" and "ef7bebf" you gave are not being interpreted as a commit to use as the start point of the new branch and git checkout just doesn't know what to do with them.
The message used to read, which was a bit worse:
fatal: Cannot update paths and switch to branch 'work' at the same time. Did you intend to checkout 'HEAD' which can not be resolved as commit?
If you pass extra arguments to git switch it reports, which is better:
fatal: only one reference expected
René