我需要查看我所使用过的分支的历史记录。例如,我有4个分支:master、b-1、b-2、b-1-1。分支"b-1-1"是分支"b-1"的子分支。我最初在master分支上,然后在b-1分支上,然后在b-1-1分支上,然后在b-2分支上,然后又回到了b-1-1分支。我使用的分支历史记录应该如下所示:
- b-1-1
- b-2
- b-1-1
- b-1
- master
在git中是否可以实现?如果可以,那么如何实现? 我已经尝试过查看git日志,但这不是我想要的。
我需要查看我所使用过的分支的历史记录。例如,我有4个分支:master、b-1、b-2、b-1-1。分支"b-1-1"是分支"b-1"的子分支。我最初在master分支上,然后在b-1分支上,然后在b-1-1分支上,然后在b-2分支上,然后又回到了b-1-1分支。我使用的分支历史记录应该如下所示:
在git中是否可以实现?如果可以,那么如何实现? 我已经尝试过查看git日志,但这不是我想要的。
使用一些 grep
过滤的 git reflog
命令调用似乎对我有用:
git reflog | grep checkout | grep -o 'to .*$' | grep -o ' .*$' | less
例如:
b2
master
b1
master
b2
b1
b2
...
git checkout abc
)
- 查看其日志(git log -n 10
)
- 检出另一个现有的分支 xyz(git checkout xyz
)abc
分支。git log --since="3 days ago" --author=<HERE_COMES_YOUR_NAME_IN_GIT> --all
--since
参数非常灵活,可以使用 1 day ago
、精确时间、1 week ago
等值,查看文档以及 this SO thread。git for-each-ref --sort=-committerdate refs/heads/
。git reflog|awk '/: checkout:/{print $NF}'
- jthillgit checkout
而是用了 git switch
呢?嗯?嗯?" ...然后我测试了一下,发现在 reflog 条目方面没有任何区别:64ea7a0f3 (HEAD -> dev) HEAD@{0}: checkout: moving from somebranch to dev
。所以谢谢你 :-) - Romain Valeri
sort -u
中,因为分支顺序也可能很有用,但是是的,在某些情况下它会更好。 - Romain Valeri