joh*_*994 10 git git-branch git-reflog git-history
我需要查看我正在使用的分支的历史记录。例如我有 4 个分支:master、b-1、b-2、b-1-1。Th\xd0\xb5 分支“b-1-1”是分支“b-1”的子分支。首先我在 master 分支,然后在分支 b-1 ,然后在分支 b-1-1 ,然后在分支 b-2 ,然后再次在 b-1-1 。我使用的分支的历史如下所示:
\n在git中可以这样做吗?如果是,那么如何?\n我尝试检查 git 日志,但它不是我要搜索的内容。
\nRom*_*eri 15
查看git reflog以检查HEAD仓位的历史记录。
还有git reflog <branch>特定分支的历史。
请在此处查看文档。
(奖励)
如果在您的上下文中有用,您还可以使用@{-<n>}构造创建一个别名来提取它们
$ git config alias.last '!f() { for i in $(seq 1 $1); do git name-rev --name-only --exclude=refs/tags/\* @{-$i}; done; }; f'
$ git last 3
# outputs the 3 last checked out branches
Run Code Online (Sandbox Code Playgroud)
这种git reflog带有一些grep过滤的调用似乎对我有用:
git reflog | grep checkout | grep -o 'to .*$' | grep -o ' .*$' | less
Run Code Online (Sandbox Code Playgroud)
例如:
b2
master
b1
master
b2
b1
b2
...
Run Code Online (Sandbox Code Playgroud)
我认为您无法看到您在问题中阐述的某种意义上检查了哪个分支以及按什么顺序。Branch 是一个指针,只有在提交时该指针才能更改。
例如,如果您:
git checkout abc)git log -n 10)git checkout xyz)那么 git 将不会记得你正在检查abc分支
话虽如此,您可以使用以下命令查看最近 3 天期间所做的提交:
git log --since="3 days ago" --author=<HERE_COMES_YOUR_NAME_IN_GIT> --all
Run Code Online (Sandbox Code Playgroud)
这个--since参数可以非常灵活,1 day ago准确的时间,1 week ago都是可能的值,请查看文档以及这个SO线程
另一个有趣的选择是使用(以其最基本的形式):git for-each-ref --sort=-committerdate refs/heads/
此命令将按降序打印所有分支中的所有提交。SO 中已经有关于此问题的线程,它提供了比我所能提供的更多可能使用此命令的选项,因此请也检查一下。
| 归档时间: |
|
| 查看次数: |
6790 次 |
| 最近记录: |