在提交之前多次暂存文件

时间:2013-10-11 19:26:39

标签: git

如果我暂存一个已更改的文件,然后再更改它并重新启动它,然后提交,我是进行两次更改,还是仅进行净更改?我假设答案是两个,但我在Git书中找不到这个。

这是在不想在我的web.config文件中提交未加密的密码的情况下出现的。我正在构建一个预提交钩子,检查相关部分是否加密,如果没有,则中止提交。但我已经意识到,如果我刚刚加密文件,并提交(没有再次进行),我仍然会提交未加密的文件。但是,如果我再次重新播放然后提交呢?我还在提交未加密的数据吗?

4 个答案:

答案 0 :(得分:1)

您只有一个暂存区域缓冲区。在舞台区域没有变化等级或时间的概念。

因此,如果您更改文件,请暂存它,覆盖以前的更改,重新启动它。只提交前一次提交的最终差异。

简而言之,只有您在git diff中看到的更改才会被提交。

答案 1 :(得分:1)

只是净变化;第一个被第二个版本取代。最终,你将垃圾收集现在不相关的分阶段副本。

答案 2 :(得分:1)

假设您在再次暂存之前没有移动或重命名该文件,那么您只是提交了“净更改”。通过运行git diff --cached,您可以在任何给定时间准确查看暂存区域中的内容。

答案 3 :(得分:0)

当你运行commit时,git会拍摄你的暂存区域的快照,并将它们存储在存储库中。因此,它总是最新的阶段版本进入提交。