- 通过交互式衍合更改本地历史记录
- 示例:交互式衍合
Git 允许您使用名为 的功能编辑提交历史记录。例如,您可以将多个提交合并为一个提交,重新排序或跳过提交,然后编辑提交消息。interactive rebase
这很有用,因为它允许用户在将更改推送到远程存储库之前重写一些提交历史记录(清理它)。
衍合的设置称为衍合计划。基于此计划,可以执行实际的交互式衍合。
只要提交尚未推送到另一个存储库,使用交互式衍合是安全的。由于交互式重定基会创建新的提交对象,因此,如果您重定已发布更改的基值,其他开发人员可能会感到困惑。
示例:交互式衍合以下命令创建多个提交,这些提交将用于交互式衍合。
# create a new file touch rebase.txt # add it to git git add . && git commit -m "add rebase.txt to staging area" # do some silly changes and commit echo "content" >> rebase.txt git add . && git commit -m "add content" echo " more content" >> rebase.txt git add . && git commit -m "just testing" echo " more content" >> rebase.txt git add . && git commit -m "woops" echo " more content" >> rebase.txt git add . && git commit -m "yes" echo " more content" >> rebase.txt git add . && git commit -m "add more content" echo " more content" >> rebase.txt git add . && git commit -m "creation of important configuration file" # check the git log message git log
我们希望合并最后七个提交。您可以通过以下命令以交互方式执行此操作。
git rebase -i HEAD~7
此命令将打开您选择的编辑器,并允许您通过定义要拾取、挤压或修正的提交来配置衍合操作。
以下清单显示了选择的示例。我们选择最后一个提交,压缩5个提交并修复第六个提交。该列表使用命令的长格式(例如,而不是短格式),以提高可读性。fixupf
pick 7c6472e rebase.txt added to index fixup 4f73e68 added content fixup bc9ec3f just testing fixup 701cbb5 ups fixup 910f38b yes fixup 31d447d added more content squash e08d5c3 creation of important configuration file暑期编程PK赛 得CSDN机械键盘等精美礼品!



