首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让Git确认以前移动的文件

让Git确认以前移动的文件
EN

Stack Overflow用户
提问于 2009-09-16 03:11:21
回答 5查看 28.8K关注 0票数 79

我不假思索地手动移动了一大堆文件,找不到一种方法让git识别这些文件只是被移动了,而不是实际上不同的文件。除了删除旧的并添加新的(从而丢失历史),或者使用git-mv重做所有的更改之外,还有什么方法可以做到这一点吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-16 03:29:27

我认为它已经做到了这一点。现在,我可能错了,但我读到过git根据文件的内容来跟踪文件,而不是基于它们在文件系统中的位置或增量/差异。在堆栈中,我认为它显示了文件正在被删除,然后重新添加,但我认为我已经尝试过一次,它仍然保留了历史记录,这是由于前面提到的git跟踪事情的方式。

对于某些人来说,验证我的正确性还是很有帮助的。如果我误解了你的问题,很抱歉。

票数 23
EN

Stack Overflow用户

发布于 2010-09-14 20:26:11

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

代码语言:javascript
复制
git add -u
票数 72
EN

Stack Overflow用户

发布于 2009-09-16 06:58:17

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

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

代码语言:javascript
复制
git log --summary -M

git将查看提交历史记录中的相邻树,并推断每次提交是否移动了任何文件。

要查找副本以及重命名,可以使用-C选项,您可以提供两次该选项,以牺牲一些性能为代价,使git更难查找可能的副本来源。

代码语言:javascript
复制
git log --summary -M -C -C

请注意,由于git不存储文件历史记录(只存储提交历史记录),即使您对文件执行了git rmgit mv操作,也不会丢失任何历史记录。对路径的所有更改仍将被记录并在git log中可见。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1430749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档