user-manual: listing commits reachable from some refs not others
This is just an amusing example raised by someone in irc. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
This commit is contained in:
parent
99eaefdd32
commit
629d9f785f
@ -830,6 +830,54 @@ available
|
||||
Which shows that e05db0fd is reachable from itself, from v1.5.0-rc1, and
|
||||
from v1.5.0-rc2, but not from v1.5.0-rc0.
|
||||
|
||||
[[showing-commits-unique-to-a-branch]]
|
||||
Showing commits unique to a given branch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Suppose you would like to see all the commits reachable from the branch
|
||||
head named "master" but not from any other head in your repository.
|
||||
|
||||
We can list all the heads in this repository with
|
||||
gitlink:git-show-ref[1]:
|
||||
|
||||
-------------------------------------------------
|
||||
$ git show-ref --heads
|
||||
bf62196b5e363d73353a9dcf094c59595f3153b7 refs/heads/core-tutorial
|
||||
db768d5504c1bb46f63ee9d6e1772bd047e05bf9 refs/heads/maint
|
||||
a07157ac624b2524a059a3414e99f6f44bebc1e7 refs/heads/master
|
||||
24dbc180ea14dc1aebe09f14c8ecf32010690627 refs/heads/tutorial-2
|
||||
1e87486ae06626c2f31eaa63d26fc0fd646c8af2 refs/heads/tutorial-fixes
|
||||
-------------------------------------------------
|
||||
|
||||
We can get just the branch-head names, and remove "master", with
|
||||
the help of the standard utilities cut and grep:
|
||||
|
||||
-------------------------------------------------
|
||||
$ git show-ref --heads | cut -d' ' -f2 | grep -v '^refs/heads/master'
|
||||
refs/heads/core-tutorial
|
||||
refs/heads/maint
|
||||
refs/heads/tutorial-2
|
||||
refs/heads/tutorial-fixes
|
||||
-------------------------------------------------
|
||||
|
||||
And then we can ask to see all the commits reachable from master
|
||||
but not from these other heads:
|
||||
|
||||
-------------------------------------------------
|
||||
$ gitk master --not $( git show-ref --heads | cut -d' ' -f2 |
|
||||
grep -v '^refs/heads/master' )
|
||||
-------------------------------------------------
|
||||
|
||||
Obviously, endless variations are possible; for example, to see all
|
||||
commits reachable from some head but not from any tag in the repository:
|
||||
|
||||
-------------------------------------------------
|
||||
$ gitk ($ git show-ref --heads ) --not $( git show-ref --tags )
|
||||
-------------------------------------------------
|
||||
|
||||
(See gitlink:git-rev-parse[1] for explanations of commit-selecting
|
||||
syntax such as `--not`.)
|
||||
|
||||
[[making-a-release]]
|
||||
Creating a changelog and tarball for a software release
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
Loading…
Reference in New Issue
Block a user