我试图理解为什么Git有很多地方可以存储更改。想象一个更简单的Git模型,它只有一个本地存储库(而不是一个单独的临时区域或工作区)。在这个模型中:
换句话说,我们可以完成Git现在所做的大部分工作,但没有工作空间,临时区域和本地存储库的概念混乱。为什么这三个都有用?
答案 0 :(得分:5)
在git上写了 tomes 。也许你缺少的是工作空间和临时区域有用的具体例子。
1)你正在研究这个漂亮的想法几分钟,但它还没有为你的本地存储库做好准备。经过几分钟的修修补补后,你意识到这不是枪支工作。您可以将工作区git reset
简单地放到本地存储库中。
如果您直接在本地仓库上工作,那么您可能会弄清楚您的提交历史,并且ii)必须处理回滚。
2)或者,假设您要合并两个可能存在冲突的分支。您可以git merge --no-commit
,然后在暂存和提交到本地仓库之前在工作区内手动清理。
1)您已经在工作区中修复了错误修复。然而,看一下积压,你会发现错误修复是真正在两个概念部分,解决两个不同的潜在问题。
拥有一个临时区域允许您“修复”前半部分的错误修复,并将其提交给您的本地。然后,您可以“暂存”错误修复的后半部分,并单独提交。
2)或者,以您对单个文件进行更改的示例为例。使用暂存区域,您只需将该文件的一部分(通过补丁)提交到本地存储库。所有更改都将在“工作空间”中,但只有一个子集可以“暂存”以进行提交。我经常发现自己为README和CHANGELOGs暂存部分文件。