编辑 Git 项目历史
Git 允许您编辑项目历史。 当您在功能分支上工作,并且希望在将其 共享给他人之前进行清理并使其符合您的预期时,这将非常有用。 例如,您可以编辑提交消息,将与同一功能相关的较小提交压缩到一起,或将包含无关更改的提交拆分为单独的提交,向先前的提交添加更改,等等。
编辑提交消息
如果您只需要更改提交消息,可以在推送该提交之前进行编辑。
在 Git 工具窗口的 日志 选项卡 Alt+9 中,右键点击要编辑消息的提交,然后在上下文菜单中选择 编辑提交消息 ,或按 F2。
在打开的对话框中,输入新的提交消息,然后点击 确定。
修订上一次提交
有时您可能过早提交而忘记添加某些文件,或者注意到上一次提交中存在错误,希望在不创建单独提交的情况下进行修复。
您可以使用 修订提交 选项,将 已暂存的更改追加到上一次提交。 这样,您最终会得到一个提交,而不是两个不同的提交。
在 提交 工具窗口 Alt+0 中,选择包含您想要添加到上一次提交的更改的已修改文件。
选中 修订 复选框,此时 提交 按钮会变为 修订提交 ,然后点击该按钮。
修订任意较早的提交
如果您需要将更改添加到较早的任意提交,而不是单独提交,可以使用 fixup 或 squash 操作来完成。 这两个命令都会将 已暂存的更改追加到所选提交,但处理提交消息的方式不同:
squash会将新的提交消息添加到原始提交fixup会丢弃新的提交消息,仅保留原始提交中的消息
在 提交 工具窗口 Alt+0 中,选择包含您想要追加到较早提交的更改的已修改文件。
在 Git 工具窗口的 日志 选项卡 Alt+9 中,右键点击您要用本地更改修改的提交,并在上下文菜单中选择 Fixup 或 压缩到。
如果您选择了压缩更改,请修改提交消息。
点击 提交 按钮上的箭头,并选择 提交并变基。
压缩提交
如果您需要合并与同一功能相关的任意两个提交,为了使分支历史更清晰,可以将它们压缩为一个提交。
在 Git 工具窗口的 日志 选项卡 Alt+9 中,选择您想要合并为一个的提交,并从上下文菜单中选择 压缩提交。
在打开的对话框中,编辑提交消息(默认情况下,它包含两个提交的消息),然后点击 确定。
将更改推送 Ctrl+Shift+K 到远程分支。
丢弃提交
您可以在当前分支中丢弃已推送的提交,而无需 创建一个用于还原这些更改的额外提交。
在 日志 视图中选择要丢弃的提交,并从上下文菜单中选择 丢弃提交。
提取所选更改
如果您想将已提交的更改拆分为多个提交,可以将所选文件中的更改提取到一个单独的提交中。
在 Git 工具窗口的 日志 选项卡 Alt+9 中,选择本地分支,然后选择您要拆分的提交。
在右侧的 已更改的文件 窗格中,选择包含您想要提取的更改的文件,右键点击这些文件,然后选择 将所选更改提取为单独的提交。
在打开的对话框中,必要时输入新的提交消息。
最终将产生两个具有新哈希的提交。