我使用 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/