首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到我曾在过的树枝的历史

得到我曾在过的树枝的历史
EN

Stack Overflow用户
提问于 2020-10-25 08:01:40
回答 3查看 2.9K关注 0票数 5

我需要看看我用过的树枝的历史。例如,我有4个分支:主人,b-1,b-2,b-1.Thе分支"b-1-1“是分支"b-1”的子分支.首先我在主干道,然后是b-1,然后是b-1,然后是b-2,然后是b-1。我使用过的分支的历史如下所示:

  • b-1-1
  • b-2
  • b-1-1
  • b-1
  • 主控

在git中可以这样做吗?如果是,那怎么做?我试过检查git日志,但这不是我正在寻找的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-25 08:34:05

我认为你看不出哪一家分店已经结帐了,从某种意义上说,你在这个问题上是按什么顺序办理的。分支是指针,只有在提交时,此指针才能更改。

例如,如果您:

  • 签出现有分支分支(git checkout abc)
  • 见其日志(git log -n 10)
  • 签出另一个现有分支xyz (git checkout xyz)

那么git就不会记得你是在检查abc分支了

尽管如此,您可以看到在此过程中完成的提交,例如使用以下命令的最后3天:

代码语言:javascript
复制
git log --since="3 days ago" --author=<HERE_COMES_YOUR_NAME_IN_GIT> --all

这个--since参数可以非常灵活,1 day ago,确切的时间,1 week ago都是可能的值,查看文档和这根线

另一个有趣的选项是使用(以其最基本的形式):git for-each-ref --sort=-committerdate refs/heads/

此命令将按降序在所有分支中打印所有提交。关于这一点,已经有了线程,它提供了更多可能使用此命令的选项,因此请检查一下。

票数 1
EN

Stack Overflow用户

发布于 2020-10-25 08:28:03

看看git reflog来检查HEAD立场的历史。

对于特定分支的历史,也有git reflog <branch>

查看文档这里

如果在上下文中有用,还可以通过使用@{-}构造来构造一个别名来提取它们。

代码语言:javascript
复制
$ 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
票数 10
EN

Stack Overflow用户

发布于 2022-09-09 19:06:58

使用某种git reflog筛选方法调用grep似乎适用于我:

代码语言:javascript
复制
git reflog | grep checkout | grep -o 'to .*$' | grep -o ' .*$' | less

例如:

代码语言:javascript
复制
 b2
 master
 b1
 master
 b2
 b1
 b2
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64521588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档