1

经过进一步的开发,我需要对之前的提交添加额外的更改。

我做了很多更改,包括从 IDE、处理文件重命名、创建新文件等。

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

我不想用git commit --amend --no-message.

我可以将这些文件列为参数git commit --amend --no-message吗?在不干扰索引的情况下还有其他可能性吗?

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

4

2 回答 2

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)我只提交选定的文件,将其他(file2fileZZZ)留在索引中,在(3)我添加缺少的file2修复留fileZZZ在索引中。

几乎可以忽略暂存区域的情况下使用 Git。

于 2017-04-26T09:11:54.647 回答
1

大多数 IDE 将暂存区域反映到真正的 Git 操作。(我正在使用 VS Code,它确实如此。)因此,首先取消暂存所有文件:

git reset .

然后,将您的文件设置为通过git add或 IDE 按钮暂存。文件应该有一个加号按钮,具体取决于 IDE 接口。

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


如果你不知道如何做上面的事情,做一个交互式的 rebase 来压缩提交也有帮助。请参阅如何修改现有的、未推送的提交?

于 2017-04-26T09:13:16.053 回答