git 删除提交中的更改?

git delete changes in a commit?

我不得不重新设置一个应该更改单个目录的提交。

现在当我在gitlab中看到最新的变化时,分支中有几十个目录显示为已更改。

我现在需要以某种方式将更改保留在我只想保留的目录中,而忽略其他所有内容。换句话说,我需要创建一个新的提交,其中唯一的更改是对当前相关目录的更改,但我不确定该怎么做。

如果你想修改现有的提交,你可以使用交互式变基:

git rebase -i <starting commit or branch>

此命令将打开带有提交列表的文本编辑器。对于每个提交,您可以提供要执行的操作。该操作默认为 "pick"。您可能想在这里使用 "edit"。保存文件并关闭编辑器后,变基开始。当 git 遇到您选择编辑的提交时,它会停止变基。此时您可以执行任何您想要的 git 命令。例如,你可以做

git reset --mixed HEAD~

现在根据您的需要编辑文件并提交。当你完成时

git rebase --continue

冲洗并根据需要重复。

有关详细信息,请参阅 git help rebase。请注意,默认情况下,变基合并提交不会保留合并。相反,它将重新设置两个历史记录中的个人提交。