git:alias:track: Also list non-tracked remotes
The alias now lists all local *and* all remote branches and displays how
they are linked.
The `sort -uk1,1` deletes all duplicate entries of remote branches as
they could be listed as %(upstream) as well as %(refname) through the
`refs/remotes/`.
TODO:
This deletes too many entries when multiple local branches track
the same remote branch. (Why ever you should do that...)
I guess this could be resolved by using `awk` for the uniqueness.
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
[alias]
|
[alias]
|
||||||
root = rev-parse --show-toplevel
|
root = rev-parse --show-toplevel
|
||||||
spull = "!__git_spull() { git pull \"$@\" && git submodule sync --recursive && git submodule update --init --recursive; }; __git_spull"
|
spull = "!__git_spull() { git pull \"$@\" && git submodule sync --recursive && git submodule update --init --recursive; }; __git_spull"
|
||||||
track = "!track() { git for-each-ref --format='%(upstream:short) <- %(refname:short)' refs/heads | sort | awk '{ print $3,$2,$1}' | column -t | sed 's/ *<- *$//'; }; track"
|
track = "!track() { git for-each-ref --format='%(upstream)%(if)%(upstream)%(then),%(end)%(refname)' refs/heads refs/remotes | sort -uk1,1 -t, | sed -E 's/(.*),(.*)/\\2,\\1/; s:(heads/[^,]*)$:\\1,:; s:^refs/remotes/:,:; s:refs/[^/]*/::g' | column -ts,; }; track"
|
||||||
[status]
|
[status]
|
||||||
submodulesummary = true
|
submodulesummary = true
|
||||||
[diff]
|
[diff]
|
||||||
|
|||||||
Reference in New Issue
Block a user