让Git确认以前移动的文件

我已经手动移动了一堆文件而没有想到,也找不到一种方法让git识别文件刚移动,而不是实际上不同的文件。 除了删除旧的并添加新的(并因此失去历史记录),或者用git-mv重做所有更改之外,是否有其他方法可以执行此操作?


我认为它已经这样做了。 现在,我可能是错的,但是我已经根据它们的内容读取了这些git跟踪文件,而不是基于它们在文件系统中的位置或基于差异/差异。 在堆栈中,我认为它显示它好像文件被删除,然后重新添加,但我想我已经尝试过一次,它仍然保留了历史记录,因为上述git跟踪事物的方式。

仍然会有助于确认我是否正确。 对不起,如果我误解了你的问题。


要让git删除已被移除或移动的文件,只需输入

git add -u

git不会跟踪单个文件的历史记录,并且不会专门处理移动和复制,也就是说没有特殊的元数据指示移动或复制发生。 相反,每个git提交都是工作树的完整快照。

如果你想在git log看到移动,除了列出哪些文件已经改变的选项之外,你可以提供-M ,例如

git log --summary -M

git会查看提交历史记录中的相邻树,并推断每个提交所移动的文件是否在其中。

要找到副本以及重新命名,您可以使用-C选项,您可以提供两次以使git看起来更难以获得可能的复制源,但会牺牲某些性能。

git log --summary -M -C -C

请注意,因为git不存储文件历史记录(仅提交历史记录),即使您使用git rmgit mv文件,也不会丢失任何历史记录。 对路径的所有更改仍将被记录并在git log可见。

链接地址: http://www.djcxy.com/p/3867.html

上一篇: Getting Git to Acknowledge Previously Moved Files

下一篇: How do I make Git use the editor of my choice for commits?