问题标签 [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 投票
3 回答
814 浏览

git - Git跟踪文件中移动/删除的代码块

我在提交正文中有一个旧提交md5hashmyfile.extension不是SOME CHANGE提交标题/元数据)。

如何在导致from的提交中生成SOME CHANGE修改(不仅仅是存在)的提交列表,而无需检查每个差异?(不幸的是,在目前的情况下有很多。)HEADmd5hash

我试过git rev-list --all | xargs git grep 'SOME CHANGE'了,但这似乎找到SOME CHANGE了文件中的所有提交。

git blame似乎没有用,因为线条已经改变并且SOME CHANGE已经移动。

0 投票
1 回答
826 浏览

git - GIT Diff 与责备或来源 SHA

我们觉得我们做得很好,或者在合并到 master 之前审查了每个提交。

但是,当我们准备好发布新软件时,我通常会再进行一次审查。我将最后一个生产版本与当前生产候选版本进行比较。

当我滚动浏览代码时,我正在寻找一种简单的方法,以便当我发现一些可疑的东西来隔离添加此行的单个更改时。目前,我使用带有“git blame”的第二个窗口,然后继续。当我看到一些有趣的东西时,我会从 git blame 产生一个新的差异。

有没有更好的方法可以不用到处乱跳?我正在使用带有 winmerge 的 tortoisegit 来使显示效果更好,但没有与这些工具中的任何一个结合使用

0 投票
0 回答
57 浏览

git - Git Gui Blame 中的“Originally By”和“Copyed or Moved Here By”是什么意思?

通常,当我将鼠标悬停在 Git Gui Blame 中的行上时,它会显示一个工具提示,其中仅包含提交哈希、作者/日期和评论。

在此处输入图像描述

但我刚刚看到一个显示 2 个提交的提示 - 标题为“最初由”,然后是“复制或移动到这里”:

在此处输入图像描述

这些到底是什么意思?Git Blame 是否以某种方式检测到代码行何时被移动或复制?

0 投票
1 回答
458 浏览

git - git blame --incremental 到底是什么增量?

文档状态:

--incremental 以专为机器使用而设计的格式增量显示结果。

但是看着输出,除了没有文件的实际行的情况下,我没有看到任何其他内容。

--incremental 实际上与 -p 有何不同?

0 投票
2 回答
1088 浏览

git - 如何搜索某人用 git 更改的字符串?

我想使用搜索特定字符串,git grep但我想通过使用来过滤结果,git blame以知道我正在寻找的字符串已被特定人更改。

我只是不知道如何将它们结合起来以获得我想要的结果。

感谢您的帮助。

0 投票
2 回答
1049 浏览

git - --no-ff merge 如何打破平分和责备?

了解 Git 工作流文章说,

所以你添加了一条新规则:“当你在你的特性分支中合并时,使用 –no-ff 来强制一个新的提交。” 这样就完成了工作,然后您继续前进。

然后有一天你在生产中发现了一个严重的错误,你需要追踪它是什么时候引入的。您运行 bisect 但继续登陆检查点提交。你放弃并亲自调查。

您将错误缩小到单个文件。你跑去责备看看它在过去 48 小时内是如何变化的。您知道这是不可能的,但责备报告该文件已数周未动过。事实证明,责备报告在初始提交时发生了变化,而不是在合并时。你的第一次检查点提交几周前修改了这个文件,但今天合并了。

no-ff 创可贴、折断的二分法和怪罪之谜都是您将螺丝刀用作锤子的症状。

git merge--no-ff是您明确阻止快进合并的一种情况。但是,如果一个提交不是另一个提交的直接祖先,那么快进甚至不会发生。这是开发中罕见的情况。换句话说,大多数合并都是非快进类型。那么传递如何--no-ff破坏bisectand的功能blame呢?

0 投票
2 回答
2160 浏览

git - git blame 删除文件,自动

如何git blame在先前已删除的文件上运行(带有git rm)是一个常见问题。如果您只是使用旧文件名运行它,那么它会给出与从未存在的文件相同的错误:

(为了简洁起见,git 对早期命令的响应已被省略。)

一个常见的解决方案是查看git log --stat文件被删除的版本。然后,您可以将该修订的父级传递给git blame

这可行,但是像这样手动搜索日志很麻烦。有没有办法告诉 git '我想查看a过去任何修订版中曾经调用过的任何文件'?我希望有一些简单的东西,比如

这将自动检查存储库的整个历史记录以查找具有该名称的文件。

0 投票
3 回答
14202 浏览

git - IntelliJ 注释与 git 责备

我正在使用 IntelliJ 的注释功能在编辑器中查看最后更改文件中的一行的人。

现在我正在使用 JGit 来读取相同的注释,但它们有所不同。对我来说,Intellij 似乎检查了提交之间没有更改行并且仍然使用旧的提交消息。JGit 没有看到它,因此发出了另一条消息。

任何人都可以确认 JGit 责备和 IntelliJ 的行为不同吗?原因是什么,如何强制 IntelliJ 表现得像 JGit?也许 IntelliJ 会忽略空格更改?

我正在使用 IntelliJ 15.0.1 和 JGit 4.1.1

0 投票
3 回答
1044 浏览

c# - 在 C# 中以编程方式执行“Git blame -w”

我需要使用 C# 以编程方式获取 Git 历史中特定行的最后一位作者。我尝试使用libgit2sharp

但这相当于命令

git blame <file>

事实上我需要

git blame -w <file>(比较时忽略空格)

Libgit2sharp不设置-w开关,也不提供任何参数/选项来设置它。我有什么选择?您知道与命令-w开关兼容的任何其他库吗?blame

0 投票
1 回答
269 浏览

git - Git:相当于`git bisect`和`git blame`的`--full-history`

我已经大量使用 Git 大约 7 年了。几天前,我发现了一个令我惊讶的行为。我发现git loggit blamegit bisect表现出这种奇怪的行为。一位朋友让我知道了解决我问题的--full-history标志。git log我想知道,对于我自己的教育,是否有git blamegit bisect.

随意使用此 repo 亲自查看问题:https ://dl.dropboxusercontent.com/u/1927707/problematic_repo.7z

这是它的日志:

在第一次提交中,该文件coffee被添加。在 commit3068c7d中,我在文件中添加了一行“sugar” coffee。但后来我把这个分支合并到development分支中,在那个合并中,出现了一个错误,“糖”行被删除,coffee留空。然后添加了另一个提交b7a8d7a,进行了不相关的更改,以进行良好的衡量。

现在我看着我的咖啡,发现里面没有糖。我清楚地记得在我的咖啡里加了糖。我运行git log coffee,并得到这个输出:

而已。git log既没有显示我添加糖的原始提交,也没有显示删除它的合并。缺少两个非常相关的提交。

这个问题让我沮丧了大约一个小时,因为它发生在一个巨大的企业仓库中,在那里手动查找提交要困难得多。

我还尝试使用git bisectandgit blame来确定这两个提交,但是这两个工具都忽略了这两个提交。git bisect在我完成所有git bisect badandgit bisect good操作后指出我错误的提交。

然后,正如我一开始所说,一位朋友指给我看--full-history国旗:

这让我很高兴,因为它显示了两个相关的提交,一个添加糖和删除它的合并。所以我的问题解决了。但我真的希望我也能知道如何制作git bisectgit blame表现。有没有人碰巧知道?