git - 在git中删除和创建文件以及文件历史记录: possible bug?

标签 git github git-commit

我使用 git rm 删除了一个文件,然后成功提交。
后来,我创建了一个以原始文件命名的新文件并成功提交。
但是,当我查看此文件上的 git log file.txt 时,我看到的不是单个提交,而是之前删除的文件的历史记录。
我希望删除的文件与新文件不同且无关,尽管两者的名称相同。
我尝试使用 --follow 并且仍然看到相同的行为。

我是不是错过了什么? (或者这是一个错误?我在 Fedora 上使用 git 2.25 版本)

git --version
git init
touch master.txt ; git add . ; git commit -m "Master original created"
git rm master.txt ; git commit -m "Master original Removed"

echo junk >dummy ; git add . ; git commit -m "Dummy Commit"

echo "only line in Master" >master.txt ; git add . ; git commit -m "Master New Created"

git log --oneline --no-rename master.txt
git log --oneline -M100% --no-rename master.txt

==========================================

it version 2.25.1
Reinitialized existing Git repository in /home/sony/gitwork/tt/.git/
On branch master
nothing to commit, working tree clean
rm 'master.txt'
[master ad596ad] Master original Removed
 1 file changed, 1 deletion(-)
 delete mode 100644 master.txt
On branch master
nothing to commit, working tree clean
[master 02492e1] Master New Created
 1 file changed, 1 insertion(+)
 create mode 100644 master.txt
02492e1 (HEAD -> master) Master New Created
ad596ad Master original Removed
42c32af Master New Created
1a057ca Master original Removed
beb0903 Master original created
02492e1 (HEAD -> master) Master New Created
ad596ad Master original Removed
42c32af Master New Created
1a057ca Master original Removed
beb0903 Master original created

最佳答案

这不是一个错误,而是基于文件内容的 Git 重命名检测的结果,足够相似,Git 会将新文件视为已重命名的旧文件。

一个git log --no-rename不会显示过去的提交。

购买真正的解决方案是撤消该提交,并且:

关于git - 在git中删除和创建文件以及文件历史记录: possible bug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62506819/

相关文章:

python - 为 Python 项目添加 .gitignore 文件的最佳实践?

git - 使用 launchd 在 OS X 上启动 git-daemon

android - 如何为现有的Github存储库添加Gradle支持?

错误 :- expected committer email '' but found 'karan@xyz.com'

git log 只显示一个提交id

git - 在 Vim 中限制或改变特定行的颜色

Git rerere 文件模式?

Git:将提交 merge 到不同的分支

Git - 每个分支的不同远程

Git 在 checkout 后丢弃未提交的更改