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

Original source