查询 git reflog 以获取对特定文件的所有提交
是否可以检查 git reflog 以了解对特定文件的所有提交。
我对文件 foo.txt 进行了提交,现在它不再显示在 git 历史记录中,通过
git log foo.txt
我想搜索 reflog 以查找对此文件的所有提交,以便我可以找到我的“丢失”提交。
Is it possible to check the git reflog for all commits to a specific file.
I made a commit to file foo.txt and now it no longer shows in the git history via
git log foo.txt
I want to search the reflog to find all commits to this file so I can find my "lost" commit.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在寻找答案时遇到了这个问题,这很简单:
git reflog -- $PATH
,其中将包括修改和其他不可见的操作(尽管要注意,reflog 将被 gc 修剪) )Came across this while searching for an answer, which is simple:
git reflog -- $PATH
, which will include amends and other actions that will not be visible otherwise (though beware, reflog will be pruned by gc)尝试:
这将为您提供包含 foo.txt 的所有提交的列表。
Try:
This will give you a list of all commits containing foo.txt.
我会使用:
--remotes
选项还允许您使用遥控器,并且--pretty=oneline
使其显示提交消息。当您在不知道名称的分支中查找推送到远程的修改时,它非常有用。I'd use:
The
--remotes
option lets you also use your remotes, and the--pretty=oneline
makes it display the commit message. It is very useful when you're looking for a modification pushed to remote in a branch you don't know the name of.当我用 rebase 清理我的历史记录时,我丢失了一个更改。我用这样的东西来搜索转发日志:
I lost a change when I was cleaning up my history with rebase. I used something like this to search the reflogs: