git 本地回滚提交

要回滚远程提交,你需要先在本地回滚提交,然后将本地的修改推送到远程仓库。以下是一般的步骤:
最好提前先git pull同步一下

  1. 首先,使用 git log 命令查看要回滚的提交的哈希值:

    git log
    

    找到你要回滚的提交的哈希值。

  2. 然后使用 git revert 命令回滚指定的提交:

    git revert <commit-hash>
    

    这将会创建一个新的提交,撤销指定的提交的更改。

  3. 确认本地回滚操作没有问题后,将本地的修改推送到远程仓库。如果你是在主分支上操作,可以使用以下命令:

    git push origin <branch-name>
    

    如果你是在其他分支上操作,可以使用以下命令:

    git push origin <branch-name>:<remote-branch-name>
    

    请注意,这里的 <branch-name> 是你当前所在的本地分支,<remote-branch-name> 是你要推送到的远程分支。

以上步骤将会回滚远程提交并将回滚后的修改推送到远程仓库。请确保你了解回滚操作的影响,并在进行操作前做好必要的备份。

如果你回滚了本地的提交,导致本地的提交历史落后于远程仓库,可以尝试以下步骤来解决这个问题:

  1. 确保你的本地仓库是干净的,没有未提交的更改和未解决的合并冲突。可以使用以下命令来查看当前的状态:

    git status
    

    如果有未提交的更改或者未解决的合并冲突,请先处理它们。

  2. 使用 git pull 命令来尝试拉取远程仓库的更新:

    git pull origin <branch-name>
    

    如果拉取过程中出现冲突,需要解决冲突并提交更改。

  3. 如果 git pull 仍然无法拉取远程仓库的更新,可以尝试使用强制拉取的方式:

    git fetch --all
    git reset --hard origin/<branch-name>
    

    这将会强制将本地分支重置到和远程分支一致的状态。请注意,git reset --hard 命令会丢失本地未提交的更改和未保存的工作,请确保你的本地没有重要的未提交更改。

  4. 最后,如果你的本地分支已经和远程分支一致,你就可以再次尝试提交你的更改了。

希望这些步骤能够帮助你解决问题。如果你还有其他问题,请随时提问!

补充 以上都不行尝试以下方法(亲测可用)

  1. 用git log命令找到commit Id
  2. reset 回退本地提交hash
    git reset --hard [commit id]
    
  3. 将本地修改强制push到远程仓库
    git push --force
    

git回滚命令reset、revert的区别
git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留.
git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区.
总结: 感觉一般git reset 用的比较多,你也不用担心,你的修改的代码丢失,它默认会放到暂存区,你再commit就可以看到你的修改。

参考资料

gitlab不能强制提交设置
https://blog.csdn.net/inthat/article/details/108405227
image

posted @ 2023-11-15 10:14  学不会xuebuhui  阅读(304)  评论(0编辑  收藏  举报
Language: javascript