问题标签 [git-blame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
468 浏览

xcode6 - 如何修复损坏的 Xcode 'git blame' / 'git log' 面板?

有一段时间,我很高兴能够在 Xcode 中使用git log&git blame在比较面板中。

在最近的某个时候,该面板已停止显示任何内容。

在“责备”模式下,面板是空白的,并且与我的文本编辑器颜色相同。

在“日志”模式下,面板是白色的,因为它通常会向我显示 git log 一段时间,但面板中没有任何内容。

我试过关闭源代码控制并重新打开它。

我已经尝试过这样做并退出 Xcode 并重新启动它,以及各种组合。

我尝试删除并重新安装 Xcode。

SourceTree 中的 git blame 仍然适用于与我的 Xcode 项目相关的存储库(有三个存储库,每个目标一个), git blame 也是如此。但不在 Xcode 内部。

我正在寻找关于如何重新建立我的 Xcode 环境以显示 'git blame' 和 'git log' 的答案。

0 投票
3 回答
3280 浏览

git - 使用 grep 命令过滤的所有文件中特定行的 git blame

我知道如何在文件中运行 gblame。

我知道如何 grep 目录中所有文件中的内容。

我希望看到包含内容的特定行的 gblame。例子:

我看到一个文件列表。我想归咎于所有主题,并了解谁触及了这些代码行。

0 投票
2 回答
11015 浏览

git - 为什么 git blame 不跟随重命名?

如您所见,该文件位于该提交的不同目录中

尽管在文档中

责备不跟随重命名。为什么?

更新:简短的回答

git blame跟随重命名,但不为git blame COMMIT^ -- <filename>

但这很难通过大量重命名和大量历史记录手动跟踪文件重命名。我认为,必须修复此行为以静默地跟随git blame COMMIT^ -- <filename>. 或者,至少,--follow必须实施,所以我可以:git blame --follow COMMIT^ -- <filename>

更新2:那是不可能的。参见下文。

Junio C Hamano 来自邮递员的答复

git blame跟随重命名,但不为git blame COMMIT^ -- <filename>

假设您的 v1.0 版本中有文件 A 和文件 B。

六个月后,代码被重构了很多,你不需要单独的这两个文件的内容。您已经删除了 A 和 B,它们的大部分内容现在都在文件 C 中。这就是当前状态。

可以遵循两者的内容就好了,但如果你 允许说

这甚至意味着什么?C 根本不存在 v1.0。您是要按照当时A的内容还是B的内容?当你在这个命令中告诉它 C 时,你是如何告诉你的意思是 A 而不是 B?

“git blame”跟随内容运动,从不以任何特殊方式对待“重命名”,因为认为重命名有某种特殊性是一件愚蠢的事情;-)

从命令行告诉从什么内容开始挖掘到命令的方式是给出起点提交(默认为 HEAD,但您可以给出 COMMIT^ 作为您的示例)和该起点的路径。因为将 C 告诉 Git 并神奇地让它猜测您在某些情况下是 A 而在其他情况下是 B 是没有任何意义的。如果 v1.0 没有 C,唯一明智的做法是退出而不是猜测(并且不告诉用户它是如何猜测的)。

0 投票
2 回答
547 浏览

git - 如何在 git 中保留以前的提交者名称?

为了清理我们的代码,我们想使用 astyle。问题是我们希望有人来完成这项工作,但要责怪以前的提交者(代码的真正作者,而不是清理的人)。

有没有办法在 git 中安全地做到这一点?

0 投票
6 回答
260280 浏览

git - 'git 责备'有什么作用?

我看到了很多关于使用方法的问题git blame,但我并不真正了解它们。

Blame我在 GitHub 界面上的文件顶部看到一个按钮。单击它后,它会在左侧栏中显示一些与用户名的差异。这说明什么?

为什么git blame实际使用,除了 GitHub?

0 投票
1 回答
413 浏览

git - git blame - 致命:错误的修订版 '22'

根据这个页面(http://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git )我应该在使用时在行号之间使用逗号git blame

但是,如果我使用 Powershell 在我的 Windows 机器上试用它:

我明白了fatal: bad revision '22'

有什么问题?与Powershell有关吗?

0 投票
3 回答
2460 浏览

git - Git 恢复已删除的文件并保留文件历史记录

假设我有一个文件a.txt。有一天,我删除了它,提交并推送。

第二天,我想恢复上一次提交,将a.txt. 我尝试使用git revert,但是当我这样做时git blame,所有行都显示还原提交哈希。原来的责备历史丢失了。

我可以恢复文件并保留文件历史记录,即,就好像该文件以前没有被删除一样?请注意,由于提交已被推送,因此我不能更改历史记录。

谢谢!

0 投票
2 回答
7198 浏览

git - 查找作者修改的所有当前行

我将如何在 git 中确定仍然存在的来自特定作者的所有行。例如,一个 Tony 参与了我的项目,我想找到我的开发分支中仍然存在并且来自 Tony 编写的提交的所有行?

0 投票
1 回答
330 浏览

git - 如何使用 git blame -S

revs-file参数的格式是什么git blame -S

我尝试使用以下输出运行它,git rev-list但将每一行归咎于HEAD提交。

git blame -S <(git rev-list HEAD~50 HEAD) $file

我也尝试过运行<(git rev-list ... | tac)以扭转出现revs-file问题的情况,但它似乎产生了相同的输出。

目标是将 的每一行归咎于和$file之间的提交,如果所有提交中都存在同一行,则默认为。HEAD~50HEADHEAD~50

0 投票
1 回答
805 浏览

git - If I Resolve a Conflict Does it Change Git Blame?

I'm trying to figure out whether a merge conflict was responsible for a bug, but I'm having difficulty because I'm not clear on how conflict resolution affects git blame.

Let's say I have a file in master:

I modify it in master:

but so does a co-worker, and they modify it differently, in a separate branch which they then merge in to master:

Can resolving that conflict affect the blame? In other words, if my co-worker resolves the conflict by going with my version:

and I git blame the d(); line, who will be blamed: me or my co-worker?

Similarly, let's say git got confused and thought both the first and second lines were conflicted:

If my co-worker resolves the conflict with their version:

and I git blame the a(); line, will I (the line's original author) get the blame, or will my co-worker (who "touched" it last, even though they didn't change it) get the blame?