昨天不小心github的commit还没push就同步了,导致本地文件被覆盖,一度以为没救了。 后来得微博 @空非无和 @柳烟堆雪 指点,用git reflog 恢复了文件。

事情是这样的。。。 
我在两个电脑上修改一个项目,A修改文件a,B修改文件b。然后我干了下面这些事,按时间顺序。。。 
1. A上 git commit 
2. A上 git push 
3. B上 git commit 
4. B上 git pull 
然后。。。B上修改的b就被覆盖了。。。

而且git log已经找不到第3步的commit了。


解决方案: 
执行git reflog

502dd0f HEAD@{0}: pull --progress --rebase --prune origin master
147b3b5 HEAD@{1}: commit: commit-mark
502dd0f HEAD@{2}: rebase finished: returning to refs/heads/master
  • 1
  • 2
  • 3

然后

git reset --hard 502dd0f
git cherry-pick 147b3b5
  • 1
  • 2

就可恢复原来B上的本地文件, 然后push到服务器端:

git push origin master
  • 1

但出现:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/GitUsername/GitProgramName.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

可见,线下线上文件出现了冲突。 
解决方法:

  1. git pull
  2. 如果有冲突,解决冲突
  3. git push

但是git pull出现问题:

You are not currently on a branch. Please specify which
branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch>
  • 1
  • 2
  • 3
  • 4

解决方法:切换到master,再执行git push

git checkout -b temp
git checkout master from: http://blog.csdn.net/abcjennifer/article/details/45101153

github不小心同步覆盖了本地文件的更多相关文章

  1. github创建项目,并提交本地文件

    1.如图所示,不要点选"Initialize this repository with README",不然就看不到第二幅图的提示信息了 2.根据下面提示,初始化本地文件,然后上传

  2. 如何与GitHub同步,将本地文件push到到远程仓库

    Run git config --global user.email "you@example.com" git config --global user.name "Y ...

  3. 恢复不小心误覆盖的代码文件 (sublime编辑器)

    最新写了一个python脚本,另外在终端上运行一个shell脚本循环记录一些性能.耗时参数.取出记录的数据,使用python pyplot强大的绘图功能来可视化,易用程度仅次于matlab. 本次文件 ...

  4. git——同步本地文件到github上

    参考教程: 1.https://blog.csdn.net/weixin_37769855/article/details/99439904 2.https://www.liaoxuefeng.com ...

  5. 将本地文件夹同步到github仓库中

    参考博客 本地生成rsa密钥 cd ~/.ssh # 查看是否已经生成过密钥 ssh-keygen -t rsa -C "username on github" # -C表示注释 ...

  6. github 创建网络仓库 ,使用git工具将本地文件上传/删除 --- 心得

    1.前言 使用  git做项目控制版本工具,当然,使用SVN也可以,但是,git让人感觉更先进一些,与GitHub结合,用起来很方便,服务端由官网控制. 而SVN分客户端和服务端,都是个人控制,因此, ...

  7. Git安装及密钥的生成并上传本地文件到GitHub上

    之前用的GitHub,不太熟练,一直在上传的过程中遇到了一些问题,看了网上诸多教程,总觉得很乱,特参考一些资料,总结了一篇完整的操作步骤,从下载安装到上传文件,亲测有效 1.下载Git软件:https ...

  8. 自动将本地文件保存到GitHub

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这篇文章主要讲讲如何自动将本地文件保存到GitH ...

  9. 本地Git仓库与GitHub/GitLab仓库同步

    本地仓库即为在你的电脑上的项目文件,远程仓库即为服务器仓库,如GitHub.GitLab或其他等.此处以GitHub介绍本地仓库与远程仓库的同步.可先创建本地仓库,也可先创建GitHub仓库,但都需要 ...

随机推荐

  1. 委托、匿名委托和lambda表达式

    1.委托 在.NET中,委托有点类似于C/C++中的函数指针,但与指针不同的是,委托是一种安全的类型,那么我们就以实现两个数的差为例,先声明一个成员方法: public int CompareTwoV ...

  2. web项目自动化测试方案预研

    一.  网上方案整理 Watir.Watir-Webdriver.Selenium2.QTP区别 Waitr与Watir-WebDriver有什么区别? Watir是非常优秀的一款自动化测试工具.其使 ...

  3. winform 如何控制输入法

    在工作中遇到这样一个问题,在系统使用过程中,输入法会变灰导致无法使用输入法输入文字,就好像输入法被禁用了没有启用似的.对此,在这里做个备录 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享 ...

  4. Fiddler2汉化版使用说明

    fiddler是一款免费且功能强大的数据包抓取软件,它能够快速的抓取HTTP会话以及支持监视.还可设置断点等诸多实用功能,非常适合计算机工作者们分析数据使用.本文就为大家详细介绍一下fiddler的功 ...

  5. Kafka的coordinator

    (基于0.10版本) Group Management Protocol Kafka的coordiantor要做的事情就是group management,就是要对一个团队(或者叫组)的成员进行管理. ...

  6. javascript设计模式--中介者模式(Mediator)

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. org.eclipse.wst.common.project.facet.core.xml文件模板,解决eclipse编译报错。

    <?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed f ...

  8. ARM系列产品

    ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Intel的StrongARM ARM11系列 Intel的Xscale 其中,ARM7.ARM9.ARM9E和A ...

  9. C# static方法-使用迭代器循环遍历文件中的额行

    //封装的方法 //读取文件的值,放入集合中 public static IEnumerable<string> ReadLines(string fileName) { using (T ...

  10. BZOJ 2424: [HAOI2010]订货 费用流

    2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...