阅读(2302)
赞(11)
使用Git编辑项目历史记录
2017-12-20 10:11:13 更新
Git 允许您编辑您的项目历史,如果在某一时刻您需要重写您的提交,就像您以不同的方式创建它们一样。
将分阶段的更改与以前的提交合并(修改提交)
有时您可能会发现自己处于这样的情况:过早地提交了一些文件,或者忘记了在最后一次提交中要修复的错误,而没有将其反映在项目历史记录中。
IntelliJ IDEA允许您通过使用"修改提交(Amend commit)"选项将以前的提交与当前的更改组合在一起,然后结束单个提交而不是两个不同的提交。
要修改以前的提交内容,请执行以下操作:
- 调用"提交更改(Commit changes)"对话框,并选择要用于修复前一个提交的更改。
- 按下Ctrl+K,单击工具栏上的 ,或从上下文菜单中选择“提交(Commit)”。
- 在打开的“提交更改”对话框中,在提交更改之前,选择右侧的“修订提交(Amend commit)”选项。
编辑提交消息
Note:编辑提交消息此操作只能应用到尚未被推送的提交。
如果您唯一需要更改的是提交消息,则可以在不进行任何其他更改的情况下对其进行编辑:
- 在“日志”视图中找到要编辑其消息的提交,右键单击该提交,然后从上下文菜单中选择“重新输入”,或按F2。
- 在打开的对话框中,输入新的提交信息,然后单击确定。
通过执行交互式的rebase编辑项目历史记录
注意:请记住,重写提交历史记录可能会导致数据丢失。
Git允许您编辑项目历史记录,以便通过执行交互式rebase分配来使其成为线性和有意义的。这允许您通过修改个别提交、改变它们的顺序、将提交内容压缩为一个、跳过包含无关改变的提交等来清理杂乱的提交历史,然后再将功能分支的更改集成到另一个分支。
编辑当前分支的历史记录
IntelliJ IDEA允许您在将更改应用到其他分支之前编辑当前分支中的一系列最近的提交 。
- 在“版本控制工具”窗口的“日志”选项卡中,选择要编辑的一系列提交中最旧的提交,右键单击该提交,然后选择“从这里交互式重定向(Interactively Rebase from Here)”。将显示 “Interactive Rebase”对话框,其中包含在选定提交后所做的当前分支中的所有提交的列表。
- 使用“操作”下拉列表将以下操作应用于提交:
- Pick:按原样应用选定的提交。
- Edit:选择此选项以在应用此提交之前编辑受此提交或提交消息影响的文件。
- Skip:忽略选定的提交。
- Squash:选择此选项将选定的提交与前一个提交相结合。
- Reword:选择此选项以在应用此提交之前编辑提交消息。
- Fixup:选择此选项可将选定的提交与前一个提交相结合,并从之前提交的消息使用“fixup”前缀。
- 使用“上移”和“下移”按钮来修改应用提交的顺序。
编辑分支历史记录并将其集成到另一个分支
IntelliJ IDEA允许您在应用更改之前rebase其他分支顶部的分支并编辑源分支历史记录。
- 从主菜单中选择:VCS | Git | Rebase。
- 在“Branch”字段中选择要分叉的分支,并在“Onto”字段中选择目标分支。
- 在“From”字段中,选择要将选定分支应用于新基准的提交。
- 确保已选中“交互(Interactive)”选项,然后单击“重新分配(Rebase)”。将显示“Interactive Rebase”对话框,其中包含在选定提交后所做的当前分支中的所有提交的列表。
- 使用“操作(Action)”下拉列表将以下操作应用于提交:
- Pick:按原样应用选定的提交。
- Edit:选择此选项以在应用此提交之前编辑受此提交或提交消息影响的文件。
- Skip:忽略选定的提交。
- Squash:选择此选项将选定的提交与前一个提交相结合。
- Reword:选择此选项以在应用此提交之前编辑提交消息。
- Fixup:选择此选项可将选定的提交与前一个提交相结合,并从之前提交的消息使用“fixup”前缀。
- 使用“上移”和“下移”按钮来修改应用提交的顺序。