提交并推送Git更改后,如何撤销本地及远程操作并切换用户重执行?
解决Git提交身份错误及撤销远程/本地更改的步骤
一、撤销远程与本地的错误提交
查看提交历史,定位到错误提交(root用户的那次提交)之前的版本:
git log --oneline找到倒数第二个提交的哈希值(比如
abc123),或者直接用HEAD~1指代上一个提交。重置本地master分支到正确版本,同时丢弃本地残留的更改:
git reset --hard HEAD~1 # 或者用具体提交哈希:git reset --hard abc123强制推送到远程仓库,覆盖错误的提交(注意:如果有其他协作者拉取过错误提交,需提前沟通):
git push origin master --force # 若远程分支开启保护,可尝试:git push origin +master
二、切换到puppet用户重新执行操作
切换用户(根据系统环境选择合适的命令):
su - puppet # 或者:sudo -u puppet bash进入目标目录,替换
a.txt、b.txt、c.txt的内容。配置puppet用户的Git身份(首次使用需配置):
git config user.name "puppet" git config user.email "puppet@yourdomain.com"完成Git提交与推送:
git add a.txt b.txt c.txt git commit -m "更新a.txt、b.txt、c.txt内容" git push origin master
注意事项
- 强制推送会覆盖远程分支的历史,仅在确认无其他协作者依赖错误提交时使用。
- 确保puppet用户拥有远程仓库的推送权限,必要时配置SSH密钥或账号凭证。
内容的提问来源于stack exchange,提问作者Fahad
相关产品推荐
相关产品推荐

