git log and show on a bare repo
git
Solution
Yes, this is normal for new bare (and non-bare) repositories.
Explanation
`HEAD` is what Git calls a symbolic reference—a reference to another reference.
In non-bare repositories, `HEAD` normally indicates which branch is currently checked out. A new commit will cause the branch named by `HEAD` to be advanced to refer to the new commit. When `HEAD` refers to a commit object directly instead of a branch, it's considered to be detached, meaning further commits will not cause a branch reference to be advanced to refer to the new commits (dangerous because checking out a different commit or branch will render the new commits unreachable by any existing reference, making them hard to find and subject to garbage collection).
In bare repositories, `HEAD` indicates the repository's default branch, so that in a clone of the repository `git checkout origin` is equivalent to `git checkout origin/master` if `master` is the default branch (see `git help rev-parse` for details).
When Git initializes a new repository, it initializes `HEAD` to refer to `refs/heads/master` (in other words, `HEAD` points to the `master` branch by default). However, it does not create a branch named `master` because there are no commits in the repository for `master` to point to yet.
So until you either create a `master` branch or change `HEAD` to point to a branch that does exist, you'll get that error when you run a command that looks at `HEAD` (such as `git log` or `git show` without any arguments).
You can still use commands that don't examine `HEAD`. For example:
git log some_branch_that_exists
Fix
To get rid of the error message, you can do one of the following:
Change `HEAD` to point to a branch that does exist:
git symbolic-ref HEAD refs/heads/some_other_branch
- Push a new `master` branch into the repository from somewhere else
Create a new `master` branch locally:
git branch master some_existing_commit
Visualization
To visualize everything in the repository, I use something like this:
git log --graph --oneline --date-order --decorate --color --all
Note that the above command will work even if `HEAD` is pointing to a non-existent branch.
Problem
I created a bare repository on a file-server in my local network at home. After this i pushed a branch of an existing repository from my desktop-pc to this new remote repository. Pushing worked perfectly and it seems, that all data arrived (a "git branch -va" gives me the correct data). But i cannot use git log or git show on the bare repository. i get an: `fatal: bad default revision 'HEAD'` or simply no output is this normal for bare repositories? Is there another possibility to visualize everything? Edit: The fatal error is solved now, but i receive no output from "git log" or "git log unstable". Same command on the desktop-pc works perfectly