git 撤销远程提交

在有些情况下(比如提交内容错误、提交信息有误、提交的不够完美),可能我们需要去撤销自己之前的 push 请求。


使用 git reset

  1. 首先撤回到上一版本的 commit 。
    git reset --soft HEAD~2
  2. 此时通过 git status 查看自己的状态并通过(git add/rm/restore)修改为合适的内容,再次 commit。
    git commit -m "project review"
  3. 使用 -f/--force 强制 push 到 remote 就大功告成。
    git push -f origin master

note: 此方法会导致你之前的错误信息被替换成现在你提交的信息。



使用 git rebase

  1. git rebase -i HEAD^
  2. 在打开的 vim 编辑器里自己先选择好要改的分支,然后在那一行将“pick”修改为“edit”
  3. git commit --amend -m "project review"
  4. git rebase --continue
  5. git push --force origin master

note: 这种方法不会覆盖之前的提交信息。



批量修改历史提交记录里的用户名和邮箱

git filter-branch -f --env-filter '
OLD_EMAIL="历史记录中用的邮箱地址"
CORRECT_NAME="新的用户名"
CORRECT_EMAIL="新的邮箱地址"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

等待上面的命令执行完再执行此命令:git push origin --force --all

博客链接:https://blog.csdn.net/vily_lei/article/details/128983983

posted @ 2023-06-11 21:30  灵火  阅读(1494)  评论(0编辑  收藏  举报