繁体   English   中英

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

[英]Does git commit --amend include the files that were in the last commit?

这本git书似乎与git commit --amend相矛盾:

此命令将占用您的暂存区域并将其用于提交。 如果自上次提交后没有进行任何更改,那么您的快照将看起来完全相同,您将更改的是提交消息。

首先它说,“这个命令占用你的暂存区域并将其用于提交。”

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

然后这本书说:“如果自上次提交以来你没有做任何更改......你的快照看起来会完全一样......”

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

似乎git书应该是:

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

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

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

该书似乎在说它不会自动为提交添加未分级的更改。

相反,正如你正确地注意到的那样(正如本书所说的那样,在我看来,这是不明确的),旧的提交被另一个提交所取代,提交与原始提交相同,但是(可能的)新提交提交消息和新的时间戳和提交哈希。 这就是快照的意思:那个时刻的回购状态。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM