“git commit --amend”没有“git add”/更改暂存区域

时间:2017-04-26 08:48:11

标签: git amend

进一步开发后,我需要为之前的提交添加其他更改。

我做了很多改动,包括来自IDE,处理文件重命名,创建新文件等等。

所以git status在暂存区域显示了很多文件。

我不想使用git commit --amend --no-message添加此文件。

我可以将这些文件列为git commit --amend --no-message的参数吗?没有令人不安的指数的任何其他可能性?

我认为存储索引 - 但列出40个文件而不是2个文件进行修改是很复杂的事情....

2 个答案:

答案 0 :(得分:1)

大多数IDE都将临时区域反映为真正的Git操作。 (我正在使用VS Code,它确实如此。)因此,首先使用以下内容取消所有文件:

git reset .

然后,通过git add或IDE按钮设置要暂存的文件。文件应该有一个加号按钮,具体取决于IDE界面。

最后,执行git commit --amend --no-message。语义应该与普通提交相同。

如果您无法弄清楚如何执行上述操作,那么执行交互式rebase来压缩提交也会有所帮助。见How to modify existing, unpushed commits?

答案 1 :(得分:0)

经过实验,我发现了一个简单明了的解决方案:

$ 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),我提交了必要的文件,将所有其他文件(file2fileZZZ)保留在索引中,(3)我添加了file2次修复fileZZZ在索引中。

可以使用Git,就像没有临时区域一样。