如何将提交应用于文件夹而不将提交消息应用于其文件?

我重命名了一个文件夹,然后提交了更改。

文件夹内的所有文件都应用了相同的提交消息。

如何将提交应用于文件夹,

没有将提交消息应用于其文件?

回答

这个问题是基于一个错误的前提。

Git 不会“将提交消息应用于文件”,它只是存储每个单独提交的提交消息。

您在这里看到的是您的 git 前端(无论呈现您截取的目录列表的任何内容)尝试显示最后一次触及文件的提交的提交消息。

由于在 git 中移动文件实际上与删除并使用不同的名称创建文件相同,因此重命名提交将最后触及该文件。

但同样:绝对没有办法改变 git 存储这些类型提交的方式。你能做的最好的事情就是找到一个能准确显示你想要的东西的工具。

例如,git diff具有尝试查找重命名并适当考虑它们的功能,但该功能git diff提供且不会更改底层提交的存储方式。


回答

如何将提交应用于文件夹,

你不能,原因很简单,Git 中没有文件夹这样的东西。也没有真正的文件,但更接近:有带路径名的 blob。因此,如果您有 blob myFolder/a和 blob myFolder/b并且您在您的世界中将文件夹重命名为myDirectory,那么在 Git 世界中您只需将两个 blob 重命名为myDirectory/amyDirectory/b

(实际上它比这更棘手;您已经删除了 blob 并创建了看起来像它们的 blob。但让我们跳过它。)

其他一切都只是外在表现。Git 不会将提交消息附加到文件或文件夹;它将它们附加到提交。这就是 Git 所知道的,提交。屏幕截图中的文件和文件夹图标,以及它们旁边的提交消息,只是为了帮助您可视化而绘制的幻觉。Git 与此无关。如果您在命令行中询问 Git 自身的提交内容,您会得到一个截然不同的故事。


以上是如何将提交应用于文件夹而不将提交消息应用于其文件?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>