Git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。
git rebase -i HEAD~3
表示要修改当前版本的倒数第三次状态。
这个命令出来之后,会出来三行东东:
pick:*******
pick:*******
pick:*******
如果你要修改哪个,就把那行的pick改成edit,然后退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit-amend
来对commit进行修改。
修改完了之后,要回来对不对?
使用git rebase --continue
OK,一切都搞定了。
git 删除历史提交(git push过的内容)
git reset --hard 哈希值
git push -f (强制更新)
文章二:
Git作为一种分布式的版本管理软件,可以帮我们高效的管理代码。我们每次做了改动,都会通过 git commit 把修改提交到本地库上,一般情况下,我们是不会修改每次的提交内容,但是,在某些特殊的情况下,我们不得不修改git 提交的内容,本文通过一个例子,详细地介绍了如何修改git提交过的内容。
工具/原料
- Git
- Linux
方法/步骤
-
首先,我们可以用“git log”查看本地提交,本文中对最近的两次提交进行修改。
-
我们可以利用”git rebase -i HEAD^^“命令修改最近的两次提交。当然,命令”git rebase -i“的最后一个参数视具体情况而定,如修改最近的三次提交,则应该改为HEAD^^^,此参数也可以用commid ID值代替。
-
进入编辑状态。我们将需要修改的提交前对应的"Pick"命令改为"edit"命令(简写为"e"),保存退出,便可以修改相应提交的内容了。
-
对需要修改的地方进行修改。然后保存退出。
-
需要注意的是,我们保存的文件必须通过”git add“命令进行添加。然后利用”git rebase --continue“命令继续。
-
修改commit时的log信息并保存退出。
-
继续对第二次提交进行修改。由于第二次提交和第一次提交有冲突,我们必须编辑冲突文件并解决冲突。然后保存退出。
-
然后通过”git add“命令和”git rebase --continue“命令继续。修改第二次提交的log信息,保存退出。
-
最后,就可以看到保存成功的信息了。
-
如果我们在执行”git rebase“命令时,需要退出,则可以运行”git rebase --abort“命令,退出rebase过程。