查询 git reflog 以获取对特定文件的所有提交

发布于 2024-11-14 19:52:15 字数 180 浏览 4 评论 0原文

是否可以检查 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苏辞 2024-11-21 19:52:15

在寻找答案时遇到了这个问题,这很简单: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)

给妤﹃绝世温柔 2024-11-21 19:52:15

尝试:

git rev-list --all -- foo.txt

这将为您提供包含 foo.txt 的所有提交的列表。

Try:

git rev-list --all -- foo.txt

This will give you a list of all commits containing foo.txt.

香草可樂 2024-11-21 19:52:15

我会使用:

git rev-list --all --remotes --pretty=oneline -- foo.txt

--remotes 选项还允许您使用遥控器,并且 --pretty=oneline 使其显示提交消息。当您在不知道名称的分支中查找推送到远程的修改时,它非常有用。

I'd use:

git rev-list --all --remotes --pretty=oneline -- foo.txt

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.

失与倦" 2024-11-21 19:52:15

当我用 rebase 清理我的历史记录时,我丢失了一个更改。我用这样的东西来搜索转发日志:

for r in $(git reflog -- ${file} | cut -d ' ' -f1); do git show ${r}:${file}; done

I lost a change when I was cleaning up my history with rebase. I used something like this to search the reflogs:

for r in $(git reflog -- ${file} | cut -d ' ' -f1); do git show ${r}:${file}; done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文