Git/Github-提交可见性/历史记录/Git日志存在问题-S

Git/Github-提交可见性/历史记录/Git日志存在问题-S,git,github,commit,git-log,Git,Github,Commit,Git Log,我对git有一个很奇怪的问题 当我使用命令时: git显示{提交次数} 它向我展示了我所做的一个提交,在这个提交中,我可以清楚地看到我使用了“boolToString”函数。如果提交已存在,则会应用。但是当我使用 git日志-S boolToString{path to file} 它找不到包含此更改的提交。文件的路径是正确的,因为如果我在提交之前键入某个短语,它将返回结果。你们中有谁有和我一样的问题吗?我将非常感谢任何关于正在发生的事情的提示或想法。您可以尝试git log--all-s bo

我对git有一个很奇怪的问题
当我使用命令时:
git显示{提交次数}

它向我展示了我所做的一个提交,在这个提交中,我可以清楚地看到我使用了“boolToString”函数。如果提交已存在,则会应用。但是当我使用
git日志-S boolToString{path to file}


它找不到包含此更改的提交。文件的路径是正确的,因为如果我在提交之前键入某个短语,它将返回结果。你们中有谁有和我一样的问题吗?我将非常感谢任何关于正在发生的事情的提示或想法。

您可以尝试
git log--all-s boolToString{path to file}
。如果git树中有分支,您将在常规的
git日志输出中发现它们缺失。

您可以尝试
git日志--all-S boolToString{path to file}
。如果您的git树中有分支,您将在常规的
git日志输出中发现它们缺失。

我认为最有可能的是 我怀疑历史简化:

无论何时运行
git log[options][-]path
git log
都会启用历史简化。这种简化的目的是解释为什么文件看起来像现在这样。这意味着,如果您正试图弄清楚为什么您在一段时间前添加的一行丢失,您可能无法获得任何输出。当您添加的行在
git merge
操作中被删除时,就会发生这种情况

(我认为这是一个失败的目标,它解释了为什么文件是现在的样子,但它就是它)。 要查找从文件中删除该行的合并,请使用:

git log -S boolToString --full-history -m -- path/to/file
--full history
选项关闭历史简化,而
-m
使Git检查合并提交,以便可以看到行消失

不太可能,但可能
-S
选项查找更改某些字符串出现次数的提交。即:

git log -S boolToString
将在差异输出中显示
boolToString
位于未被相应
-
行平衡的
+
行中的提交,反之亦然。例如,如果您正在寻找一个地方,在那里您对
boolToString
的一个参数进行了更改,那么您想要的是
git log-G
,而不是
git log-S

我认为最有可能的 我怀疑历史简化:

无论何时运行
git log[options][-]path
git log
都会启用历史简化。这种简化的目的是解释为什么文件看起来像现在这样。这意味着,如果您正试图弄清楚为什么您在一段时间前添加的一行丢失,您可能无法获得任何输出。当您添加的行在
git merge
操作中被删除时,就会发生这种情况

(我认为这是一个失败的目标,它解释了为什么文件是现在的样子,但它就是它)。 要查找从文件中删除该行的合并,请使用:

git log -S boolToString --full-history -m -- path/to/file
--full history
选项关闭历史简化,而
-m
使Git检查合并提交,以便可以看到行消失

不太可能,但可能
-S
选项查找更改某些字符串出现次数的提交。即:

git log -S boolToString

将在差异输出中显示
boolToString
位于未被相应
-
行平衡的
+
行中的提交,反之亦然。例如,如果您正在寻找一个地方,在那里您对
boolToString
的一个参数进行了更改,那么您想要的是
git log-G
而不是
git log-S

是当前签出分支的提交部分(或者更准确地说,在当前签出提交的历史记录中可以访问)?是的,是的。我只处理一个分支“master”。该提交是当前签出分支的一部分(或者更准确地说,在当前签出提交的历史记录中可以访问)?是的,它是。我只在一个分支“大师”上工作。谢谢你的回答,但它不起作用。我仍然看不到负责更改的提交。在“git日志”中,我可以看到负责该更改的提交。该提交是否有与boolToString行关联的更改?也就是说,
git-diff{commit}^..{commit}
是否表明该特定的diff实际上改变了一行中包含boolToString的内容?谢谢你的回答,但它不起作用。我仍然看不到负责更改的提交。在“git日志”中,我可以看到负责该更改的提交。该提交是否有与boolToString行关联的更改?也就是说,
git diff{commit}^..{commit}
是否表明,特定的diff实际上改变了一个包含boolToString的行?谢谢你的回答,它工作了。谢谢你的回答,它工作了。