gpt4 book ai didi

git - 如何通过提交消息搜索 Git 存储库?

转载 作者:IT王子 更新时间:2023-10-29 01:08:50 27 4
gpt4 key购买 nike

我使用提交消息“Build 0051”将一些源代码 checkin GIT。

但是,我似乎再也找不到该源代码了 - 如何使用命令行从 GIT 存储库中提取该源代码?

更新

  1. 使用 SmartGIT checkin 版本 0043、0044、0045 和 0046。
  2. check out 0043,并在不同的分支上检入 0051 之前的版本。
  3. 再次查看 0043。
  4. 现在,0051已经消失了。

更新

源代码肯定在那里,现在是检查它的问题:

C:\Source>git log -g --grep="0052"
commit 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
Reflog: HEAD@{10} (unknown <Mike@.(none)>)
Reflog message: commit: 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
Author: unknown <Mike@.(none)>
Date: Fri Aug 19 17:24:51 2011 +0100

20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.

C:\Source>

最佳答案

要搜索给定文本的提交日志(跨所有分支):

git log --all --grep='Build 0051'

要通过 repo 的历史搜索提交的实际内容,请使用:

git grep 'Build 0051' $(git rev-list --all)

显示给定文本的所有实例、包含的文件名和提交 sha1。

最后,作为万一你的提交悬而未决并且根本没有连接到历史记录的最后手段,你可以使用 -g 标志(--walk 的缩写)搜索 reflog 本身-reflogs:

git log -g --grep='Build 0051'

编辑:如果您似乎丢失了历史记录,请检查 reflog 作为您的安全网。在

列出的其中一个提交中查找 Build 0051
git reflog

您可能只是将您的 HEAD 设置为“Build 0051”提交不可见的历史记录的一部分,或者您可能实际上已经将其吹走。 git-ready reflog这篇文章可能会有帮助。

要从 reflog 中恢复您的提交:对您找到的提交执行 git checkout(并可选择为其创建一个新分支或标记以供引用)

git checkout 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
# alternative, using reflog (see git-ready link provided)
# git checkout HEAD@{10}
git checkout -b build_0051 # make a new branch with the build_0051 as the tip

关于git - 如何通过提交消息搜索 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com