有没有办法恢复或撤消git pull,以便我的源/ repos将进入git pull之前的旧状态? 我想这样做是因为它合并了一些我不想这样做的文件,但只合并了其他剩余的文件。 所以,我想要恢复这些文件,这可能吗? 谢谢 :)

编辑我想撤消git merge以澄清。 看到一些答案后,我就这样做了

git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...

现在,我该怎么办? 做git reset --hard可以吗? 我不想再把它搞砸了,所以要求详细的步骤?


#1楼

git pull会做两件事:它会执行git fetch ,然后执行git merge ,它会合并已设置为在配置中合并的分支。

所以你想要做的是撤消合并(撤消fetch并没有多大意义,也不是必要的)。

要做到这一点,你可以尝试使用git reset --hard重置为以前的状态。 使用git-reflog命令查找先前状态的SHA-1,然后重置为该状态。

警告git reset --hard删除所有未提交的更改。


#2楼

如果你有gitk(尝试从你的git命令行运行“gitk --all”),那很简单。 只需运行它,选择要回滚的提交(右键单击),然后选择“将主分支重置为此处”。 如果您没有未经修改的更改,请选择“硬”选项。


#3楼

与jkp的答案相同,但这是完整的命令:

git reset --hard a0d3fe6

通过这样做找到a0d3fe6

git reflog

并查看要撤消的点。


#4楼

撤消合并的更现代的方法是:

git merge --abort

而稍微老一点的方式:

git reset --merge

之前答案中描述的老派方式(警告:将丢弃所有本地更改):

git reset --hard

但实际上,值得注意的是git merge --abort只相当于git reset --merge因为存在MERGE_HEAD 。 这可以在git help for merge命令中读取。

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

合并失败后,当没有MERGE_HEAD ,可以使用git reset --merge撤消失败的合并,但不一定使用git merge --abort因此它们不仅是旧的和新的语法相同的东西 。 这就是为什么我发现git reset --merge在日常工作中更有用。


#5楼

你可以做git reset --hard ORIG_HEAD

因为“pull”或“merge”将ORIG_HEAD设置为执行这些操作之前的当前状态。


#6楼

假设在执行git pull之前$COMMIT是最后一次提交id。 你需要撤消最后一次拉动是什么

git reset --hard $COMMIT

奖金:

在谈到拉动时,我想分享一个有趣的技巧,

git pull --rebase

上面的命令是我git生活中最有用的命令,节省了大量的时间。

在将新提交推送到服务器之前,请尝试此命令,它将自动同步最新的服务器更改(使用fetch + merge),并将您的提交放在git log的顶部。 无需担心手动拉/合并。

有关详细信息,请访问: http : //gitolite.com/git-pull--rebase


#7楼

它首先使用: git reflog

找到你的previus状态的SHA并制作(HEAD @ {1}就是一个例子)

git reset --hard HEAD@{1}

#8楼

如果有一个失败的合并,这是想要撤消git pull的最常见原因,运行git reset --merge就完全符合预期:保留已获取的文件,但撤消git pull尝试合并的合并。 然后,人们可以决定在没有git merge有时产生的混乱的情况下做什么。 而且它并不需要一个以找到确切的提交ID --hard提到的所有其他答案需要。


#9楼

这是恢复拉动变化的最简单方法。

git reset --hard 9573e3e0

9573e3e0是你的{提交ID}

撤消git pull,如何将repos带到旧状态相关推荐

  1. git 撤销刚才的rebase_撤消git pull –rebase

    嘿,我是git的新手,我需要撤消pull命令,有人可以帮忙吗?!? 所以我要做的是... git提交 git stash git pull --rebase git stash pop 这造成了一堆冲 ...

  2. 在什么情况下,“ git pull”会有害吗?

    本文翻译自:In what cases could `git pull` be harmful? I have a colleague who claims that git pull is harm ...

  3. 如何强制“ git pull”覆盖本地文件?

    如何在git pull上强制覆盖本地文件? 该场景如下: 团队成员正在修改我们正在工作的网站的模板 他们正在将一些图像添加到图像目录(但是忘记在源代码控制下添加它们) 他们通过邮件将图像发送给我 我将 ...

  4. git pull 覆盖本地_SVN与Git比较的优缺点差异

    一. 集中式vs分布式 1. Subversion属于集中式的版本控制系统 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出 ...

  5. #39;git pull#39;和#39;git fetch#39;有什么区别?

    主持人注意:鉴于此问题已经发布了67个答案 (其中一些已删除),请在发布另一个问题之前考虑您是否正在贡献新内容 . git pull和git fetch什么区别? #1楼 我花了一点时间来了解有什么区 ...

  6. git pull的理解 以及 git conflict的解决

    git pull:相当于是从远程获取最新版本并merge到本地 即: git fetch -> 与本地的分支(比如master)merge 如果有conflict报错 1 先查看statue - ...

  7. git pull时出现unable to unlink old 一个不该犯下的错误

    在日常开发中,当团队内有人将新的代码打成jar文件提交,并且未改名的时候,可能会出现这样的错误"error: unable to unlink old 'Test/lib/xxx-1.0.0 ...

  8. git pull时出现Enter passphrase for key ‘xxx/id_rsa‘

    手残党之前在设置时不小心设置了密码,导致每次git pull都需要密码 解决办法如下 1.输入命令 ssh-keygen -p 然后弹出,Enter file in which the key is ...

  9. git 撤销刚才的rebase_撤消git rebase

    回答(15) 2 years ago 最简单的方法是找到分支的头部提交,因为它是在reflog中的rebase开始之前... git reflog 并将当前分支重置为它(关于在使用 --hard 选项 ...

最新文章

  1. 【Python】字符串对齐的常用方法
  2. 先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)
  3. MATLAB禁用!!MATLAB教程对高校全免费!!
  4. flashcom网址收集
  5. 【高并发】JUC底层工具类Unsafe
  6. Jmeter的Throughput有误差与分布式测试时的坑
  7. 21天Jmeter打卡Day8 get/delete/put之间的请求
  8. C++中清理map的代码
  9. 【PCB学习笔记】绘制智能车四层板 --- PCB封装库的创建方法及现有封装调用
  10. HIT软件构造 软件生命周期 配置管理
  11. excel实用快捷键图表_使用快捷键创建Excel图表
  12. win7任务管理器没有的找到方法
  13. 总浮动时间(TF) 自由浮动时间(FF) 区别
  14. BTC钱包(wallet.dat 文件密码与私钥的区别)
  15. springboot---fastDFS 简单文件上传/下载/删除
  16. Authorization
  17. rk3288_updata
  18. 腾讯沙盒游戏计算机,最好玩的五款沙盒游戏 腾讯新作上榜
  19. SD卡windows无法识别修复
  20. 35之后程序员何去何从

热门文章

  1. ASP.NET内置对象二
  2. 算法模板——线段树6(二维线段树:区域加法+区域求和)(求助phile)
  3. 2011年3月四级网络工程师笔试试卷 解答思路
  4. BZOJ3240 NOI2013矩阵游戏(数论)
  5. 2017 让机器给我们干活
  6. idea无法正常使用SVN的解决方法
  7. 蓝桥杯 2014本科C++ B组 李白打酒 三种实现方法 枚举/递归
  8. 记一次 AXI -id debug
  9. CentOS下Apache服务器的安装与配置
  10. shell脚本——释放缓存