作为一个颠覆用户,git的索引是我面临的最具挑战性的新概念,因为我考虑将其用于新项目.我读了许多人的评论,说他们没有使用索引(总是提交-a),但我认为可能有一个致命的原因,为什么我想要使用它.(我与大约5个其他开发人员共享代码,在成熟的开发环境中工作,我们将代码合并到测试和稳定的分支,并使用分支来实现实验或重要的新功能.)
我欣赏Git索引的原因是为了进行本地更改.使用索引可以做的一件事与Subversion的"changelist"支持大致相同,只是它更方便.我经常只从几个可能被修改过的文件中分出一个或两个文件来构造一个只包含那些文件的提交.使用Subversion,我将不得不考虑该更改列表的名称(即使它只是"工作"或"临时"),并在构建和提交更改列表期间重复键入该名称几次.
该索引还支持git add -p我认为是Git杀手功能之一的功能.请参阅Ryan Tomayko的The Thing About Git,其中介绍了Git如何解决"纠缠不清的工作副本问题".您可以只修改部分修改过的文件,而无需在编辑器中使用Undo处理临时副本或玩弄技巧.
索引并没有真正参与您与其他开发人员的交互.但是,它会对您与Git的交互方式产生重大影响.