- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
git blame --ignore-revs-file显然是现代 Git 中存在的一个选项。
只有一个问题。它不起作用。
或者至少,它对我不起作用:
您可以将其添加到 shell 脚本中:
mkdir -p /tmp/blarp
cd /tmp/blarp
git init
cat << EOF > file.txt
one
two
three
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'one commit'
cat << EOF > file.txt
one
awesome
three
EOF
git add file.txt
git commit --author "Two <two@example.com>" -m 'two commits'
cat << EOF > file.txt
one
awesome
sauce
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'three commits'
git rev-parse HEAD~1 > ignore.txt
git blame --ignore-revs-file=ignore.txt file.txt
对我来说,这表明:
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
1c185c4c (Two 2019-12-30 21:47:15 +0000 2) awesome
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
但我希望看到
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
^b6d40d5 (One 2019-12-30 21:47:15 +0000 2) two
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
或者
^b6d40d5 (One 2019-12-30 21:47:15 +0000 1) one
d8b9bafd (One 2019-12-30 21:47:15 +0000 2) awesome
d8b9bafd (One 2019-12-30 21:47:15 +0000 3) sauce
但事实并非如此。我确实发现,如果更改只是空白更改,它们将被忽略……但 git 文档对此并不明确,只是建议:
--ignore-revs-file
Ignore revisions listed in file, which must be in the same format as an fsck.skipList. This option may be repeated, and these files will be processed after any files specified with the blame.ignoreRevsFile config option. An empty file name, "", will clear the list of revs from previously processed files.
git blame --ignore-revs-file=revs-to-ignore
似乎不适合我?
最佳答案
检查 Git 2.29(2020 年第 4 季度)是否修复了以下问题:“ git blame --ignore-rev/--ignore-revs-file
”( man )未能验证其输入是否为有效修订版,并且未能考虑到用户可能想要提供带注释的标签而不是提交,已更正。
见 commit 610e2b9 , commit f58931c (2020 年 9 月 24 日)来自 Junio C Hamano ( gitster
) .
(由 Junio C Hamano -- gitster
-- merge 于 commit 230ff3e ,2020 年 10 月 4 日)
blame
: validate and peel the object names on the ignore list
The command reads list of object names to place on the ignore list either from the command line or from a file, but they are not checked with their object type (those read from the file are not even checked for object existence).
Extend the
oidset_parse_file()
API and allow it to take a callback that can be used to die (e.g. when an inappropriate input is read) or modify the object name read (e.g. when a tag pointing at a commit is read, and the caller wants a commit object name), and use it in the code that handles ignore list.
git blame --ignore-revs-file=<file>
(
man)”学会了忽略输入中不存在的对象名称,而不是提示。
rscharfe
) .
gitster
-- merge 于
commit b4e245a ,2020 年 11 月 18 日)
blame
: silently ignore invalid ignore file objectsReported-by: Jean-Yves Avenard
Signed-off-by: René Scharfe
Reviewed-by: Barret Rhoden
Since 610e2b9240 ("
blame
: validate and peel the object names on the ignore list", 2020-09-24, Git v2.29.0-rc0 -- merge listed in batch #19)git blame
(man) reports checks if objects specified with--ignore-rev
and in files loaded with--ignore-revs-file
and config optionblame.ignoreRevsFile
are actual objects and dies if they aren't. The intent is to report typos to the user.This also breaks the ability to use a single ignore file for multiple repositories.
Typos are presumably less likely in files than on the command line, so alerting is less useful here.
Restore that feature by skipping non-commits without dying.
关于git - 为什么 git blame --ignore-rev/--ignore-revs-file 对我不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537270/
如果我克隆 bootstrap:git clone https://github.com/twbs/bootstrap 然后做一个git blame:git blame js/src/alert.js
我在一个 git blame 被有效破坏的仓库中。 我想在 git blame 中忽略两个提交。 提交 1 破坏了很多文件。 提交 2 立即恢复提交 1。 现在每次我 git blame 一行时,我都
我有一个文件存在于 branch_A 但不存在于 branch_B 中。 我想跑 > git checkout branch_B > git blame branch_A file 但是,git 提示
这是今天的 git 挑战。我在这上面花了一个小时,但有些人可能一时半会儿就知道了。 您将如何对存储库中的所有 *_template.html 文件进行 git blame,并且只打印出其中包含字符串“
使用 git blame , 是否可以仅查看文件中特定日期之后所做的更改? 我正在尝试运行,git blame 在一个超过 10000 行和大量提交历史记录的文件上。使用 git blame 很难只发
一个常见的问题是如何在一个早先被删除的文件上运行git blame(使用git rm)。如果您只是使用旧文件名运行它,那么它会给出与从未存在过的文件相同的错误: % git init % echo 1
有没有一种方法可以使用 git blame 找出在 repo 中编辑 java 文件中的类的作者列表?作者列表必须是唯一的。 我试过使用以下命令,但它没有删除重复项,并且在每一行输出中都有单词“aut
我的存储库中有一个文件,我想对其使用 git blame,但我不确定它的路径是什么。 我已经设法像这样使用 git log: git log -- '**/somefile' 但我似乎无法对 git
这个问题在这里已经有了答案: How can I view prior commits with git blame? (14 个答案) 关闭 3 年前。 我使用 git blame 命令来查看在哪
当我对一个文件运行 git blame 时(使用 msysgit),我总是得到以下类型的打印输出: 00000000 (Not Committed Yet 2011-01-09 11:21:30 +0
我如何“滥用”blame(或一些更适合的函数,和/或结合 shell 命令)来统计存储库中当前有多少行(代码)来自每个提交者? 示例输出: Committer 1: 8046 Lines Commit
来自 git blame 的部分输出: ... d6182477 ( 2012-06-22 09:44:02 -0400 239) ... d6182477 (
如果一行在2个版本之间来回修改多次,git blame 似乎只显示该行的最新提交。 是否可以让它显示该行的所有提交? 最佳答案 我不知道如何同时显示该行上的所有提交,但是您可以使用 git blame
最近当我尝试打开 git blame 时,但它显示了错误的数据,比如它显示了 一个 人和 一个 日期整个项目。 知道是什么原因造成的吗? 我正在使用 android studio,但它确实在终端中显示
我不小心删除了一个文件(我不是他的创建者)并提交并将其推送到远程。现在我想让 git 取消删除此更改,但是当我使用 git revert #mistaken commit 时,它可以工作,但指责信息指
我正在开发一个新的 weave用于存储版本控制历史的基于数据结构。毫无疑问,当它问世时,这会引起一些关于它是否是正确的做事方式的宗教 war ,但这不是我现在的问题。 我的问题与输出 blame 有关
当我尝试运行 svn blame 时,我突然遇到了一个奇怪的错误 $ svn blame file.txt svn: Network connection closed unexpectedly 这以
当我使用 Xcode 的 Authors 功能时,我无法加载 git 历史并得到以下提示。它使用了工作。我不知道如何解决这个问题。 最佳答案 终于修好了。 问题是我在子文件夹中有另一个 .git。 在
这个问题在这里已经有了答案: Git commit that doesn't override original authors in git blame (2 个答案) 关闭 9 年前。 我有一个
本质上,我正在尝试做的是我们通常使用网络界面做的事情。我知道怎么做git blame使用网络界面比如 bitbucket 或 github,但是如何使用 git CLI 做同样的事情?到目前为止,我已
我是一名优秀的程序员,十分优秀!