如何通过提交消息来搜索Git存储库?
我用提交消息“Build 0051”检查了一些源代码到GIT中。
但是,我似乎无法再找到该源代码 - 我如何使用命令行从GIT存储库中提取此源代码?
更新
更新
源代码肯定存在,现在是检查它的一个问题:
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>
更新
使用以下来检索丢失的源代码:
C:Source>git checkout HEAD@{10}
Previous HEAD position was aa09ace... 20110819 - 1045 - GL: Intermediate version. File version: v0.5.0 build 0043.
HEAD is now at 77b1f71... 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
现在,SmartGit中的所有内容都可以再次显示。 问题解决了 - 你们是最好的,尤其是@shelhamer!
搜索给定文本的提交日志(跨越所有分支机构):
git log --all --grep='Build 0051'
要通过回购的历史记录来搜索提交的实际内容,请使用:
git grep 'Build 0051' $(git rev-list --all)
显示给定文本的所有实例,包含文件名和提交sha1。
最后,作为最后的手段,如果你的提交是--walk-reflogs
,你可以使用-g
标志搜索reflog自身(简称--walk-reflogs
:
git log -g --grep='Build 0051'
编辑:如果你似乎失去了你的历史,检查reflog
作为你的安全网。 在列出的其中一个提交中查找Build 0051
git reflog
您可能只是简单地将HEAD
设置为'Build 0051'提交不可见的历史记录的一部分,或者您可能实际上已将其吹走。 git-ready reflog文章可能有帮助。
要从reflog中恢复你的提交 :做一个你找到的提交的git签出(并可选地创建一个新的分支或标签以供参考)
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
我把它放在我的〜/ .gitconfig中:
[alias]
find = log --pretty="format:%Cgreen%H %Cblue%s" --name-status --grep
然后我可以输入“git find string”,并获得包含该消息中字符串的所有提交列表。 例如,要查找引用票证#33的所有提交:
029a641667d6d92e16deccae7ebdeef792d8336b Added isAttachmentEditable() and isAttachmentViewable() methods. (references #33)
M library/Dbs/Db/Row/Login.php
a1bccdcd29ed29573d2fb799e2a564b5419af2e2 Add permissions checks for attachments of custom strategies. (references #33).
M application/controllers/AttachmentController.php
38c8db557e5ec0963a7292aef0220ad1088f518d Fix permissions. (references #33)
M application/views/scripts/attachment/_row.phtml
041db110859e7259caeffd3fed7a3d7b18a3d564 Fix permissions. (references #33)
M application/views/scripts/attachment/index.phtml
388df3b4faae50f8a8d8beb85750dd0aa67736ed Added getStrategy() method. (references #33)
M library/Dbs/Db/Row/Attachment.php
git log --grep=<pattern>
Limit the commits output to ones with log message that matches the
specified pattern (regular expression).
链接地址: http://www.djcxy.com/p/68743.html