为什么要在Git中提交之前想要阶段?

我不熟悉版本控制,我明白“提交”本质上是在更新新版本的“当前”版本时创build备份。

我不明白的是从实践的angular度来看, 是升级只存在于名称中的东西,还是它有目的? 当你提交的时候,它会去做任何事情,对吧?

编辑:我想我可能会混淆术语。 “已登台”文件与“已追踪”文件是一样的吗?

当你提交它只会提交索引中的更改(“staged”文件)。 这有很多用途,但最明显的是把你的工作变化分解成小的,独立的部分。 也许你在实现一个function的时候修复了一个bug。 你可以git add只是该文件(或git add -p只添加文件的一部分!),然后在提交其他所有内容之前提交该错误修复。 如果你正在使用git commit -a那么你只是在提交之前强制add一切。 如果您想利用分段文件,请不要使用-a

您也可以使用 – --cached到许多命令将暂存的文件视为中间工作副本。 例如, git diff --cached会告诉你stage是如何与HEAD不同的,所以你可以看到你要提交的内容,而不会混淆其他的工作变化。

  • 分段区域使控制更小。 只需在代码中进行一次逻辑上的更改,将更改后的文件添加到暂存区域,最后如果更改不正确,则检出以前的提交或以其他方式提交更改。这样可以灵活地将任务分成更小的任务,变化。 随着中转区域,更容易集中在小任务。
  • 它也给你提供rest,忘记rest之前你做了多less工作。 假设您需要更改三个文件以进行一次逻辑更改,并且已经更改了第一个文件,并且需要长时间rest,直到您开始进行其他更改。 在这个时候,你不能提交,你想跟踪你完成的文件,所以在回来之后,你不需要记住已经完成了多less工作。 所以将文件添加到临时区域,它将保存您的工作。 当你回来只是做“git diff –staged”,并检查你更改了哪些文件,并在哪里开始进行其他更改。

临时区域有助于我们提高灵活性。 通过制作,我的意思是分解成逻辑单位的承诺。 如果你想要一个可维护的软件,这是非常关键的。 最明显的方法,你可以做到这一点:

您可以在单个工作目录中处理多个function/错误,并仍然进行有意义的提交。 拥有一个包含我们所有活动工作的工作目录也非常方便。 (这可以在没有临时区域的情况下完成,只要这些更改不会与文件重叠,而且还有手动追踪它们是否重叠的额外责任)

你可以在这里find更多的例子: 索引的使用

最好的部分是,这个工作stream程的优势并不止于此。 如果一个独特的工作stream程出现,你几乎可以肯定,中转区将帮助你。