git 撤销远程提交
在有些情况下(比如提交内容错误、提交信息有误、提交的不够完美),可能我们需要去撤销自己之前的 push 请求。
使用 git reset
- 首先撤回到上一版本的 commit 。
git reset --soft HEAD~2
- 此时通过 git status 查看自己的状态并通过(git add/rm/restore)修改为合适的内容,再次 commit。
git commit -m "project review"
- 使用 -f/--force 强制 push 到 remote 就大功告成。
git push -f origin master
note: 此方法会导致你之前的错误信息被替换成现在你提交的信息。
使用 git rebase
git rebase -i HEAD^
- 在打开的 vim 编辑器里自己先选择好要改的分支,然后在那一行将“pick”修改为“edit”
git commit --amend -m "project review"
git rebase --continue
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理