Cri*_*scu 23 git mercurial tortoisehg staging
该汞文档状态hg不支持等同于Git的指数开箱即用,并使用类似的行为扩展(记录或MQ)建议.
首先,我的实地经验非常少git,所以让我说明我对git中升级概念的理解:
git add选择将提交哪些文件.git add -p仅选择文件中的某些块以便稍后提交.git commit将以前选择的更改添加到存储库.因此staging area,对我来说,整体而言是一个浮夸的名称,用于选择工作副本中的哪些更改将在下一次提交中进行.
如果我还没完全关闭,那么,为什么每个人,包括官方文档,都说明Mercurial不支持这个?
我问,因为上面的确切工作流程在TortoiseHg中是微不足道的:

我不知道hgTortoiseHg使用什么命令,但是我再也不需要关心了.(它没有使用此AFAICT的任何扩展名)
git我缺少的分期概念还有更多吗?
Amb*_*ber 30
登台区域(索引)记录更改快照,而不仅仅是选择的文件.例如,您可以修改要添加的foo文件A,暂存文件A,然后再次修改文件A以进行添加bar.如果不重新暂存文件A,那么在提交时,只会 foo提交,因为索引在暂存时具有A的快照.
您还可以将文件还原回最后一个索引快照的状态(通过git checkout).从本质上讲,索引就像一个"临时提交",在实际提升为完全提交之前很容易修改.
由于索引是持久的,如果你在中途进行中途,那么决定你需要进行另一次更改,没问题 - 只需进行更改,然后暂存新版本.无需重新安排您已经上演过的所有其他事情.
在提交之前意外删除了一个文件?如果你已经上演了它,不用担心 - 只需查看分阶段版本.
Git旨在支持Linux内核开发期间的某些类型的工作流。由某种人为某种人。
它的设计目的不是让普通开发人员易于使用(与hg!相比),但是由于其成本,性能,大型公司的支持和广告活动而获得了广泛的欢迎和文化地位(GitHub在此处)。
如今,普通开发人员可以通过IDE GUI与Git进行交互,而无需了解Index / Stage区域。它仅使用复选框,如asker屏幕截图中所示(因此普通开发人员在Git / Mercurial用法之间没有区别)。
对于使用命令行的Git不规则CLI语法和暴露不必要的存储格式细节的人们,与成为Mercurial向导的时间相比,学习线更长。
这是描述索引用法的漂亮图像:
您总是可以通过以下方式模拟Index(但是为什么?):
hg qinit
hg qadd
hg qrefesh
hg qfinish
Run Code Online (Sandbox Code Playgroud)
除了MQ,您可以拥有一组有序的索引,而不仅仅是一个!并允许您为每个“索引”命名。
通过record扩展,您可以选择在CLI中选择补丁程序块,就像在GUI中选中复选框一样。该扩展名是对Git -p选项的直接回答。
因此,主题入门者实际上是正确的,认为Index是DVCS体系结构的不必要功能,它内置于Git中以支持某些Git核心开发人员的意愿。
祝你好运,黑客入侵愉快!
更新报价来自http://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
Git的大多数功能都直接针对代码库的维护者:必须合并来自许多不同来源的文稿的人,或者必须确保大量并行开发工作的人才能产生单一,一致且稳定的版本。很好 但是大多数Git用户都没有这种情况:他们只是简单地编写代码,通常一次在单个分支上写几个月。Git是一台4柄双锅炉意式浓缩咖啡机,当他们需要的一切即刻即可。