经过进一步的开发,我需要对之前的提交添加额外的更改。
我做了很多更改,包括从 IDE、处理文件重命名、创建新文件等。
所以git status
在暂存区显示了很多文件。
我不想用git commit --amend --no-message
.
我可以将这些文件列为参数git commit --amend --no-message
吗?在不干扰索引的情况下还有其他可能性吗?
我考虑存储索引 - 但是列出 40 个文件以忽略而不是 2 个文件进行修改是很复杂的事情......
经过试验,我发现了一个简单(且明显)的解决方案:
$ echo x >> file1
$ echo x >> file2
$ echo y >> fileZZZ
(1)$ git add .
(2)$ git ci -m fix -- file1
(3)$ git commit --no-edit --amend -- file2
在(1)
我将所有内容添加到索引中。在(2)
我只提交选定的文件,将其他(file2
和fileZZZ
)留在索引中,在(3)
我添加缺少的file2
修复留fileZZZ
在索引中。
几乎可以忽略暂存区域的情况下使用 Git。
大多数 IDE 将暂存区域反映到真正的 Git 操作。(我正在使用 VS Code,它确实如此。)因此,首先取消暂存所有文件:
git reset .
然后,将您的文件设置为通过git add
或 IDE 按钮暂存。文件应该有一个加号按钮,具体取决于 IDE 接口。
最后,执行git commit --amend --no-message
. 语义应该与正常提交相同。
如果你不知道如何做上面的事情,做一个交互式的 rebase 来压缩提交也有帮助。请参阅如何修改现有的、未推送的提交?