使用 GitHub PR,为什么删除的空文件显示“空文件”。而不是删除

问题描述 投票:0回答:1

在 Windows 上使用 GitBash。

在 GitHub 上,查看 PR 时,为什么删除的空文件显示“空文件”,而有内容的则显示“此文件已删除”

这只是一个怪癖吗?

我有一段时间非常困惑,因为在另一个仓库中,我遇到了同样的问题,有一个非常大的 PR,但我认为这与文件夹外壳的更改有关,但这完全是一个转移注意力的事情。

感觉很小,但我花了很多时间认为该文件没有作为 PR 的一部分被删除。

但是如果它旁边有一个橙色的方形减号框,那么就认为这是事实的来源?

这并不奇怪,比如一些权限更改、我使用的 Git Bash 命令,或者其他什么?

Git Bash 完整示例:

创建一个空文件,提交并推送:

touch test.md
git add test.md 
git commit -m "Empty File"
git push

创建一个单独的分支,删除文件,推送:

git checkout -b TestDeleteBranch
git push -u origin TestDeleteBranch 
git rm test.md 
git commit -m "Test delete empty file"
git push

将包含 content 的文件添加到 main,将其合并到分支:

git switch main
git touch testWithContent.md
touch testWithContent.md
echo "## content" >> testWithContent.md
git add testWithContent.md 
git commit -m "File with content"
git push
git switch TestDeleteBranch
git merge main
git push

删除文件及其内容提交并推送到分支:

git rm testWithContent.md
git commit -m "Test delete with content"
git push

然后通过 UI 创建一个 PR 到 main,比较上图中的分支文件与 main。

github pull-request
1个回答
0
投票

Github 只是许多围绕 Git 进行包装的网站和应用程序之一,它们可以选择以自己喜欢的方式显示内容。 Github 想要向您显示内容的差异,但是没有内容,所以它说该文件是空的。它也没有说文件已被删除,这似乎是一个疏忽,你可以通过 Github 提出来。

以下是 Git 如何显示使用

git log -p
删除包含内容的文件。

commit 7e182a6a84aad2db3d976bb3f3670dca02f2ad53 (HEAD -> TestDeleteBranch, origin/TestDeleteBranch)
Author: Michael G. Schwern <[email protected]>
Date:   Sat Nov 4 15:41:52 2023 -0700

    Test delete with content

diff --git a/testWithContent.md b/testWithContent.md
deleted file mode 100644
index 52dd624..0000000
--- a/testWithContent.md
+++ /dev/null
@@ -1 +0,0 @@
-## content

还有一个没有内容的文件。

commit 07aebea83e01920fea16799944cb0e942aad4066
Author: Michael G. Schwern <[email protected]>
Date:   Sat Nov 4 15:39:58 2023 -0700

    Test delete empty file

diff --git a/test.md b/test.md
deleted file mode 100644
index e69de29..0000000

在这两种情况下都显示

deleted file mode 100644

© www.soinside.com 2019 - 2024. All rights reserved.