Git文件管理与索引
git文件管理与索引
前言
这一夜,注定是个不眠之夜,小白和cangls的对话已然进入了白热化。小白孜孜不倦的咨询关于git方面的知识,对索引越来越感兴趣。小白以前存的小电影文件可以进行版本的对比,探索哪个版本画质更好。
小白:cangls,我最近有点疑惑。
cangls:具体是哪些方面呢?
小白:最近有些需求,我需要对文件进行版本管理控制,但是有些问题百思不得其解。
cangls:版本管理啊,这个我可熟悉呢,最近也在总结系列文章。看了之后,相信会对你有所帮助。
Linus Torvalds在Git邮件列表里曾说如果不先了解索引的目的,你就不能完全领会Git的强大之处。
本文为个人Git系列文章第二弹,git进阶内容之不得不了解的文件管理与索引。Git的索引不包含任何文件内容,它仅仅追踪你想要提交的那些内容。当执行git commit命令的时候,Git会通过检查索引而不是工作目录来找到提交的内容。虽然git在底层为了我们处理了很多事情,但记住索引和它的状态也很重要。在任何时候都可以通过git status命令来查询索引的状态。
正文
VCS的经典问题之一就是文件重命名会导致它们丢失对文件历史记录的追踪。而Git即使经过重命名,也仍然能保留历史信息。在实际的工作使用中,貌似Git系统处理文件重命名的方式更优越一点点。因为啊,git有多种方式处理重命名一个文件(比如:使用git rm配合git add、git mv),而以往的程度还不足以确保SVN知道所有的情况。但是,还没有能完美处理重命名的文件系统。