Pro Git
http://progit.org/book/zh/
$ git log --pretty=format:"%h %s" HEAD~3..HEAD
8d0814c support camera ov3640
055c5ff patch Inc3.4P3
1b47e15 patch TI_Inc3.4P2
$ git log --pretty=format:"%h %s"
显示所有提交
$ git log -4 --pretty=format:"%h %s"
8d0814c support camera ov3640
055c5ff patch Inc3.4P3
1b47e15 patch TI_Inc3.4P2
3715abe poweroff workaround
The symref was most likely created by "git clone". It references the
remote tracking branch for the remote's branch that was referenced by
the remote's HEAD at the time of the clone. Its purpose is to serve as a
shortcut for the remote's "primary" branch. Instead of origin/HEAD, you
can just write "origin", so you can do "git log origin.." instead of,
for example, "git log origin/master..".
As we reconstructed on IRC, you cloned the repo while it still had a
branch head called "master", and that was the primary branch. So
origin/HEAD was created as a symref to origin/master. In the meantime,
the "origin" repo got changed and the "master" branch head was deleted.
A call to "git remote prune" then killed "origin/master " locally and the
symref got broken.
Regarding your "rm .git/refs/remotes/origin/HEAD" fix, this can nowadays
be done using "git remote set-head". That command can create, updated or
delete the <remote>/HEAD symrefs, without requiring the user to use
plumbing (git symbolic-ref) or knowing about how and where the refs are
stored within .git.