当我在 IntelliJ IDEA 中使用 git annotate 时,某些行的作者用户名与此提交的作者姓名不同,如下图:
正如你所看到的,fan.qp和Qp不一样,为什么会这样呢?
当我使用 bash 或 SourceTree 运行时git blame,两个名称是相同的。
这是IDEA的错误吗?
我如何在git中确定仍然存在的来自特定作者的所有行.比方说,Tony已经参与了我的项目,我想找到我的开发分支中仍然存在的所有行,并且来自Tony撰写的提交?
当我对文件夹e,g中的文件运行git blame时:
git blame Foo/FileA.txt
它返回
fatal: no such path 'Foo/FileA.txt' in HEAD
我可以清楚地看到该文件存在于文件系统中,并且同一文件夹中的其他文件可以成功归咎于 - 所以发生了什么?
我正在发布这个问题和答案,因为它让我今天难倒了一段时间,而且我找不到能够解决所有解决方案的单一答案.
我有一个旧的承诺md5hash上myfile.extension与SOME CHANGE在提交主体(未提交标题/元).
我怎样才能生成提交列表与SOME CHANGE修改(不只是存在)导致对提交HEAD的md5hash,而不必检查每个差异?(其中不幸的是,目前的情况很多.)
我试过git rev-list --all | xargs git grep 'SOME CHANGE'但这似乎找到SOME CHANGE了文件中的所有提交.
git blame由于线条已经改变并且SOME CHANGE已经移动,因此似乎毫无用处.
我正在使用IntelliJ的注释功能在编辑器中查看最后一次更改文件中的行.
现在我使用JGit读取相同的注释,它们有所不同.对我来说,似乎Intellij检查提交之间的行没有被更改,仍然使用旧的提交消息.JGit没有看到它,因此发出了另一条消息.
任何人都可以确认JGit责备和IntelliJ的行为有何不同?是什么原因,我如何强制IntelliJ像JGit一样行事?也许IntelliJ忽略了空白变化?
我正在使用IntelliJ 15.0.1和JGit 4.1.1
假设我有一个文件a.txt.有一天,我删除了它,提交并推送了.
第二天,我想恢复最后一次提交,带回来a.txt.我尝试过使用git revert,但是当我这样做时git blame,所有行都显示了恢复提交哈希.最初的责备历史丢失了.
我可以恢复文件并保留文件历史记录,即好像之前没有删除过文件吗?请注意,我不得在推送提交时更改历史记录.
谢谢!
我已经使用Git大约7年了.几天前,我发现了一个让我感到惊讶的行为.我找到了git log,git blame并git bisect展示了这种奇怪的行为.朋友让我知道那个--full-history标志git log解决了我的问题.我想知道,对于我自己的教育,是否有相应的修复git blame和git bisect.
请使用此repo随意查看问题:https://dl.dropboxusercontent.com/u/1927707/problematic_repo.7z
这是它的日志:
$ git log --graph
* commit b7a8d7aa001d06eb7491ab5fb447a8dd3aa421a8
| Author: Ram Rachum <ram@rachum.com>
| Date: Tue Apr 19 17:45:01 2016 +0300
|
| adding more to some-file
|
* commit 0aa833916e908ea93902a6c4c227f9a884a1bcef
|\ Merge: 2413945 3068c7d
| | Author: Ram Rachum <ram@rachum.com>
| | Date: Tue Apr 19 17:44:31 2016 +0300
| |
| …Run Code Online (Sandbox Code Playgroud) 我需要以编程方式使用C#获取Git历史记录中特定行的最后一位作者.我尝试使用libgit2sharp:
var repo = new LibGit2Sharp.Repository(gitRepositoryPath);
string relativePath = MakeRelativeSimple(filename);
var blameHunks = repo.Blame(relativePath);
// next : find the hunk which overlap the desired line number
Run Code Online (Sandbox Code Playgroud)
但这相当于命令
git blame <file>
事实上我需要
git blame -w <file> (比较时忽略空格)
Libgit2sharp不设置-w开关,也不提供任何参数/选项来设置它.我有什么选择?你知道其他任何与命令-w切换兼容的库blame吗?
我想改进"注释选项"(右键单击代码行号冒号 - >注释),这类似于git blame(但集成到IntelliJ).
1 /有可能吗?(通过插件或IntelliJ文件的原始修改?还有什么?)
2 /我在Android Studio上(基于IntelliJ),这会是一个问题吗?
3 /如果1 /&2 /为真,那么有关如何启动的提示?
PS:我的目标不是在annonate中显示一些提交(如"重新格式化"),因为它们不提供有关代码历史的重要信息.
我使用git blame命令来查看在哪个提交中添加了一些特定的代码行,但是有时我碰到同样的问题:有人进行了某种代码格式化,或者更改了功能接口并刷新了所有客户端代码。
最终,git blame仅向我显示了对特定代码行的最后一次提交。如何忽略此提交并查看之前发生了什么?
当然,我可以在进行格式编辑的提交之前检出提交,然后再次指责,但是在大型项目上可能要花费很多时间,因此不合适。
git ×10
git-blame ×10
git-log ×2
blame ×1
c# ×1
git-bisect ×1
git-revert ×1
jgit ×1
libgit2 ×1
libgit2sharp ×1