首页 > 其他分享 >将尚未推送的Git合并操作撤销

将尚未推送的Git合并操作撤销

时间:2023-10-13 19:46:09浏览次数:37  
标签:HEAD git -- hard 撤销 merge Git master 推送

内容来自 DOC https://q.houxu6.top/?s=将尚未推送的Git合并操作撤销

我不小心在我的本地master分支上运行了git merge some_other_branch。我没有将更改推送到origin master。如何撤销合并?


合并后,git status显示:

# 在master分支上
# 您的分支比'origin/master'领先5个提交。

我如何撤销所有这些提交?


使用git reflog查看合并前一个提交的commit(git refloggit log更好用)。然后,您可以使用以下命令将其重置:

git reset --hard commit_sha

还有一种方法:

git reset --hard HEAD~1

它会让您回到上一个提交。

请注意,任何已修改且未提交/未暂存的文件都将被重置为其未修改状态。要保留它们,可以将这些更改暂存或使用下面的 --merge 选项。


正如@Velmont在下面的回答中建议的那样,在这种情况下,使用:

git reset --hard ORIG_HEAD

可能会产生更好的结果,因为它应该保留您的更改。ORIG_HEAD将指向合并发生之前的某个提交,因此您不需要自己寻找它。


另一个提示是使用 --merge 开关而不是 --hard,因为它不会无谓地重置文件:

git reset --merge ORIG_HEAD

--merge

重置索引并更新工作树中与HEAD不同的文件,但保留索引和工作树之间不同的文件(即那些未添加到更改中的更改)。

标签:HEAD,git,--,hard,撤销,merge,Git,master,推送
From: https://www.cnblogs.com/xiaomandujia/p/17762986.html

相关文章

  • k8s获取所有镜像地址并推送到镜像仓库
    单个空间kubectl-ntest-systemgetdeployments-owide|awk'{print$7}'|grepregistry.test.cn>images.txttailimages.txt 所有空间kubectlgetdeployments-A-owide|awk'{print$8}'|grepregistry.test.cn>images.txtgrep-ibiti......
  • docker搭建gitlab,集成CI/CD(gitlab-runner)
    搭建gitlab和gitlab-runner首先配置GITLAB_HOMEexportGITLAB_HOME=/srv/gitlab如果你是在BASH下,可以将以上配置放到~/.bash_profile文件中,使用source~/.bash_profile使其永久生效。dockerrun--detach\--hostname192.168.1.205\--publish9443:443--publish9......
  • 开课吧前端1期.阶段4-1:Markdown,git
    Markdown工具:1.markdown——程序员专用,写笔记文档(建议)Atom工具插件:MarkdownPreviewPlus*使用方法#一级标题##二级标题###三级标题-列表(零序列表)```代码```sql代码---代表一条线|---|表格 版本控制国外:github国内:gitee.com公司开发都是多人......
  • git中报错
    git中报错集合1......
  • Git Cooperation
    1.Clone远程仓库:如:[email protected]:xuhongh2/test2.git2.创建分支每个人在自己电脑上创建一个分支(建议我们直接用自己名字或者netID):如:gitcheckout-bxuhongh2这样就建立并切换到了这个分支,每个分支相当于是当前main分支的一个副本,我们只用建立一次......
  • git纯干货
    git版本回退自己实践(简写)以下内容纯实践出结果,结论具体对不对我不知道哈百度上一搜一大堆,gitresetgitrebasegitrevert用法也是写了一大堆,看完也是似懂非懂,操作不来!!gitreset效果当我执行commit之后没有push的时候使用gitresetHEAD~#回退到上一次commit的......
  • Git、Gerrit与Jenkins/Hudson CI服务器
    本文讲述了如何为基于团队的代码审查系统配置Git、Gerrit与Jenkins/Hudson,正如我在《Git,GerritandJenkinsforiOSdevelopment》和《GerritGitReviewwithJenkinsCIServer》演讲(以及第一次提出这种做法的《Someday...》)中所倡导的那样。文中的范例假定你所使用的操作......
  • 聊聊企业级消息推送的架构设计(001)
    最近有小伙伴拿到了一线互联网企业如阿里、网易、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题:企业级消息通知系统有哪些需求?如何满足?企业级消息通知系统,该如何做架构设计?所以,这里今天给大家做一下系统化、体系化的梳理,使得大家可以充分展示一下大家雄厚......
  • 将docker里的所有正在运行的docker容器commit成images镜像并推送至harbor仓库里
    脚本一需求:将本地服务器上正在运行的所有容器打包成镜像并上传至Harbor仓库下的指定项目里  #!/bin/bash#设置Harbor仓库的地址和凭据HARBOR_URL="192.168.1.55:88"HARBOR_USERNAME="admin"HARBOR_PASSWORD="Harbor12345"HARBOR_PROJECT="m55all-images"#登录到Harbor仓......
  • 【转】一次性git revert多条提交
    原文:https://developer.aliyun.com/article/719851如果用gitrevert一个一个revert挺费劲,可以用gitrevertOLDER_COMMIT^..NEWER_COMMIT这种格式这样会在log上多留下多条revert相关的记录,如果不想生成revert相关的记录呢?就是多加个-n参数,然后再通过gitadd和gitcomm......