两个提交之前,我意外地改变了一张受法律保护的图片的免费图片(我不允许分发该图片).我还没有推到github.如何撤消对图片所做的这些更改,以便它不会显示在提交历史记录中?好像这张照片从未改变过.
使用git rebase -i HEAD~2
.当系统提示您要执行的操作时,对于需要更改的提交,请将"pick"替换为"edit".这将允许您编辑您指定的提交,这意味着编辑整个提交,而不仅仅是消息.
(或者,如果你根本不需要那个提交,只需删除包含错误提交的行.rebase将完成并使其完成,以便提交永远不会发生.在这种情况下,没有必要阅读其余部分. )
当你踢掉rebase(通过保存并退出你正在使用的任何编辑器)时,你会得到一个类似下面的提示:
Stopeed at 98ad8ac... Add an image I really oughtn't add.
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
那就是这样做的!进行提交所需的更改(即删除非自由图像,放回免费图像),然后运行git commit --amend
.那将用新的替换你的错误提交.
(替代方案:git reset HEAD^
在此时运行.这将使得好像提交没有发生,但提交中的所有更改都将在您的工作副本中,因此您可以根据需要暂存/退出/进行任何更改.然后git commit
照常运行.)
然后运行git rebase --continue
,Git将在你的第一个提交之上应用你的第二个提交,你的历史将只包含正确的修复,而不是duff.
归档时间: |
|
查看次数: |
140 次 |
最近记录: |