问题标签 [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.
git - git blame --color-by-age 在 git config 中设置为默认值
git blame --color-by-age
每当我调用git blame
. 我将如何配置我的.gitconfig
文件来实现这一点?
git - git 注释一个压扁的提交
我一直对“压缩”或重写历史持怀疑态度,现在我几乎确信我应该从我管理的存储库中禁止这种做法。但也许有人可以回答这个问题,并为我的壁球冠军同事节省一天的时间。
我刚刚遇到了一行代码,我想了解其背后的原因,所以我过去常常git annotate
找出是谁写的以及为什么写的。但它指向一个“压缩”提交,一长串关于无数功能和错误修复的提交消息头列表,没有详细信息。不是很有帮助。
“哦,但总会有 reflog,”我确信;“信息永远不会在 git 中丢失!” 好的,很高兴听到它!但我试过git reflog <squashed-commit-hash>
了,根本没有输出——没有帮助。我也试过git rev-list <squashed-commit-hash>
了,得到了数百个哈希的列表,在用 手动检查了其中一些之后git show
,我得出结论,它们不是被压扁的部分——也没有帮助。
那么实际上是否有可能找出对那行代码有贡献的单个提交,并查看该提交的全部信息?是否可以在一个 git 命令中完成,而不必成为 bash 大师?或者这些信息实际上是否真的在 git 中丢失了?
git - 文件名中的“+”字符导致 git blame 失败
我运行一个命令git blame --show-email foo.txt
,它可以工作。但我运行另一个命令git blame --show-email foo+bar.txt
并得到:
致命:HEAD 中没有这样的路径“ParentDir/Foo+Bar.txt”
我针对“git blame + character error”、“bash processing special characters”、“addition sign in filename terminal error”和大约 20 个其他变体运行了一整套 google,并获得了 0% 的洞察力。
这是 bash、git 还是 git-blame 问题?如果是这样,我该如何清理/制作这个命令?
git - 如何在文件的特定版本中获取源代码行号?
可以看到行的源/原始行号,git blame
但它根据在行中进行修改的最后一次提交显示行号
我想对文件的特定提交/修订做同样的事情。
例子,
文件:file.ext
(xyz11是我们当前正在审查的文件的修订/提交)
内容:
我想为"Line 3"获得" 3" 。Git blame 将根据该行的提交 (abc13)提交显示此信息。但是,由于xyz11和abc13版本包含不同的内容,因此xyz11中的实际行号可能不同。
那么如何在文件的特定版本中获取行号呢?
注意:我说的是“源/原始行号”因为即使文档很脏,我也想获得正确的行号(有未提交的更改)git blame
我的场景是,我将在 API 请求中使用这些行号来添加内联注释
所以,假设我已经修改了file.ext
我应该仍然为"Line 3"而不是"5" 得到 "3" ,否则评论将转到错误的行。正如我所说,它可能是,但它根据行的提交显示此信息git blame
谢谢
git - 使用 Git 的非常规方法
我正在研究使用 git 自动化代码管理的特定用例。我不确定 git 是否内置了这个功能,或者已经有一个产品可以做到这一点。如果您能指出我正确的方向,我将不胜感激。
思路很简单,流程如下:(我理解这可能不是Git的常规使用方式,是一个具体的用例)
调度程序将代码从用户之间的共享存储库提交到 GitLab(使用调度程序 user_id)
在用户完成对代码的应用更改(使用 GUI 界面)并选择他们所做的更改后的第二天,
脚本\代码修改提交以根据用户在步骤 2 中的整体信息调整 Git-Blame 输出(此步骤可能需要将提交中断为多个提交并更改用户作者)
任何帮助将不胜感激。
我确实使用了“git_blame_someone_else”代码和 rebase\cherrypicking 的组合,但是,我认为我可能太努力了,这可能是 Git 中的内置功能。(中断提交和更改代码作者)
git - 为什么 `git blame -e` 有时会打印文件名而有时不会?
请参阅以下示例(在从https://github.com/llvm-mirror/llvm克隆的 LLVM 源代码树中)。为什么有时会打印文件名而有时不会?谢谢。
git - 使用代码格式化程序时如何逐行保留 git 作者?
我们厌倦了掉毛。所以我们想在我们的项目中使用黑色。不幸的是,它几乎改变了我们项目中的每一行,这将使我们失去大部分的作者信息。我们annotate
在 pycharm 中使用或git blame
很多来确定在查看特定代码片段时与谁交谈。在一次提交中更改大量文件时如何保留这些信息?
编辑:由于这是这个问题的重复,我想把重点放在“尽可能好”的方法上。
让我们假设 lint 提交是由人工(但已知)作者创建的,因此用作标志。那么是否可以创建一个git blame
类似的输出,显示自此关键 lint 提交以来的所有作者以及该提交中更改的行的任何先前作者?
我意识到这对于拆分/合并的线路效果不佳,但它至少提供了一种更快的方法来限制潜在人员与 1、2、3 人交谈的范围。
git - 从 git-blame 中删除文件名和时间戳
长文件路径和不需要的时间戳让我很难阅读git blame
. 我想从输出中删除这些列,但保留 SHA、行号和作者姓名。
我在文档中看到-f
or--show-filename
标志包含文件名(即使它默认包含在内),但似乎没有删除文件名的标志。我经常git blame
在单个文件上使用,所以我已经知道我正在查看哪个文件。
我还看到一个用于禁止作者姓名和时间戳 ( -s
) 的标志,但我更愿意保留作者姓名,因此该标志不适用于我需要的内容。
我什至尝试将-s
标志与-e
标志结合起来(使用作者的电子邮件而不是他们的姓名),但该技巧未能为作者输出任何内容。
有任何想法吗?
git - Git责备文件/文件夹级别?
是否可以git blame
在文件/文件夹级别而不是“逐行”级别?
该命令 git blame
通常会显示影响给定文档中每一行的最后一次提交,但我想知道您是否获得了影响每个文件的最后一次提交的列表。从选项来看,使用是不可能的,git blame
但是否有其他命令可以做类似的事情?
编辑:理想情况下,我想获得一个包含文件名的列表,对于每个文件,我们还可以获得提交哈希、最后编辑文件的人的姓名以及日期。
git - 我可以在 bitbucket 中显示作者和提交登录差异吗?
这是我的背景:
我在一个有两个分支的存储库中工作:master 和develop。
所有团队都在他们的代码中进行本地更改,并在完成任务后将他们的提交合并到开发分支中。
一段时间后,向主分支发出拉取请求。这是我提出问题的地方:
我在同一个拉取请求中有不同的作者和提交。当我在 Bitbucket GUI 中查看差异时,我如何知道哪个人在每个文件或行中进行了哪些更改?(所以我可以标记那个人并拒绝与该提交等效的任务——当出现问题时)
目前,唯一的解决方案是逐个提交以查看更改,但这似乎不太实用。我的工作流程中是否存在任何概念问题?