git commit --amend是否包含上次提交的文件?

时间:2014-09-26 00:20:26

标签: git version-control

git book似乎与git commit --amend

相矛盾
  

此命令将占用您的暂存区域并将其用于提交。如果   自从你上次提交以来,你没有做任何改变......,然后是你的   快照看起来完全一样,你所要改变的就是你的   提交消息。

首先它说,"此命令占用您的暂存区域并将其用于提交。"

现在,如果我运行git add -A; git commit -m "Initial"; git status;,状态消息显示暂存区域为空

然后这本书说,"如果自上次提交以来你没有做出任何改变......你的快照将看起来完全一样......"

现在,如果它使用我的(空)暂存区域进行提交,那么修改后的提交是否应为空?修改后的提交不是空的,它包括上一次提交中的文件。

git书似乎应该是:

  

此命令将获取您的暂存区域,将其添加到上次提交,并从组合中创建新的提交...

请帮帮我。什么,如果有的话,我错过了什么?

1 个答案:

答案 0 :(得分:4)

措辞有点尴尬,但你的解释是正确的。这正是--amend所做的。

这本书似乎在说它不会自动为提交添加非分段更改。

正如你正确地注意到的那样(正如本书所说的那样,在我看来,以一种不清楚的方式)会发生什么事情,旧的提交被另一个提交所取代,提交与原始提交相同,但是(潜在地)新的提交消息和新的时间戳和提交哈希。这就是快照的意思:那个时刻的回购状态。

当然,如果你有DID进行了阶段性更改,那么这些更改将被转移到新提交中。