gpt4 book ai didi

git blame 自动删除文件

转载 作者:太空狗 更新时间:2023-10-29 13:59:34 25 4
gpt4 key购买 nike

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

% git init
% echo 1 >a
% git add a
% git commit -m.
% echo 2 >a
% git add a
% git commit -m.
% git rm a
% git commit -m.
% git blame a
fatal: cannot stat path 'a': No such file or directory
% git blame z
fatal: cannot stat path 'z': No such file or directory

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

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

% git blame 11144~1 -- a
97da6499 (Ed Avis 2016-01-14 11:00:40 +0000 1) 2

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

% git blame --any-file-named a

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

最佳答案

你总是可以为此制作你自己的 bash 函数:

blame-deleted () {
git blame $(git rev-list -n 1 HEAD -- $1)~1 -- $1
}

将它添加到您的 .bashrc 中就可以了,这样您就可以:

% blame-deleted a

关于git blame 自动删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com