github不小心同步覆盖了本地文件

昨天不小心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 [email protected]{0}: pull --progress --rebase --prune origin master
147b3b5 [email protected]{1}: commit: commit-mark
502dd0f [email protected]{2}: rebase finished: returning to refs/heads/master  

然后

git reset --hard 502dd0f
git cherry-pick 147b3b5

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

git push origin master

但出现:

 ! [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. 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>

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

git checkout -b temp
git checkout master
时间: 2024-10-25 12:19:01

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

Git与GitHub(利用git上传本地文件到GitHub上面)

GitHub就是代码仓库(管理代码的工具)可以共享给所有人 Git就是从GitHub上提取文件或者将本地文件上传到GitHub的工具(等同于SVN) 利用Git上传项目 步骤一:(用户和邮箱为你github注册的账号和邮箱) $ git config --global user.name "startstudysmile" $ git config --global user.email "[email protected]" 步骤二:设置SSH key $ ssh

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

最新写了一个python脚本,另外在终端上运行一个shell脚本循环记录一些性能.耗时参数.取出记录的数据,使用python pyplot强大的绘图功能来可视化,易用程度仅次于matlab. 本次文件覆盖杯具前1秒的状态 sublime text 3 打开了plot.py 激活窗口不在sublime sublime升级一个版本,恰好Local history不工作 先上解决办法: 绝对不要切sublime窗口,vim打开sublime设置 vim /Users/youname/Library/A

git 上传本地文件到github

1 git config --global user.name "Your Real Name" 2 git config --global user.email [email protected] git init git add . git commit -m 'Test' git remote add origin [email protected]:XXX/XXX.git 3 git push -u origin master 一些可能遇到的问题解决: 如果输入$ git re

Github 如何上传本地文件

前提 首先你要在github上申请一个账号,网址:https://github.com/ 然后你要下载一个git工具,网址:https://gitforwindows.org/ 第一步:新建仓库 新建仓库步骤省略,最后我们得到一个仓库地址: https://github.com/wangle1218/×××××××××.git 第二步:进入要上传的文件夹(或者直接找到项目右键选择 Git Bash here ),初始化上传文件夹仓库,项目里面会多一个.git文件,它是隐藏文件,不要修改. $ c

chrome中workspace配置达到同步修改本地文件的作用

在前端开发中,我们经常需要在浏览器中进行调试,特别是一些样式的修改,如果你还是先在浏览器elements中调试好在复制到本地文件,那就真的out了. chrome浏览器的workspace功能完全可以帮你实现同步修改,但需要一些设置.好了,废话不多说,先看下面的例子: 1.在chrome中打开本地html文件,F12,打开调试器 2.在右上角的选择菜单中选择setting 3.在左侧菜单栏中选择workspace,并点击add folder添加项目目录所在文件夹 4.点击add,添加mappin

谷歌开发者 代码调试同步本地文件功能

首先F12打开开发者工具 选择Sources 在左边的文件夹内  鼠标移动到你的html文件右键点击  选择  Add  folder to workspace 就会弹出选择框,这时候选择自己的文件夹,选择后.浏览器顶部会弹出是否允许等等.点击允许 然后左侧就会多出本地的本件.打开文件夹.选择html文件右键  Map to network resource . 最后空格允许   就可以了   就可以再浏览器中   改改改  就可以同步到本地文件了.

如何将本地文件上传到github托管

Github开源代码库以及版本控制系统,可以托管各种git库,可以将个人Blog或小型项目托管到github,方便看起来又高大上的样子,哈哈哈,下面就看一下实践过程和成果吧!一:注册账号:地址: ([https://github.com/),如果有了账号直接登录就ok了!] login.png 2.下载安装git:https://git-scm.com/downloads3.在本地准备好你的项目 二:1.登录你的github,然后创建一个New repository,起个名称dome(名称随你开

outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)

用惯了outlook2010, 问题:今天将邮件放到自定义文件夹后,发现在web邮箱中看不到邮件了.不能同步到企业邮箱. 解决忙了一天,才知道是账户类型问题,pop3类型,只下载不上传.所以outlook本地修改后,web邮箱看不到.创建账户类型imap,才能将本地文件夹邮件上传到邮箱服务器.创建imap新账户,然后将老账户中的本地文件夹直接拖动到新用户下,然后选择"发送/接受"下的"所有用户组"(单选imap类型用户也行),或者关闭outlook,自动将邮件上传到

Git学习(2)-使用Git 代码将本地文件提交到 GitHub

上次随笔写到git的安装和运用命令窗口创建本地版本库,这次主要讲一下用git代码将本地文件提交到GitHub上. 前提是有一个GitHub账号. 1.创建一个新的版本库,进入到你本地项目的根目录下(我的是/f/git-file/git-python),右键->Git Bash here,然后执行 git init 命令.   2.将要上传到GitHub上的文件拷到当前目录下(我的是File-Python),然后执行 git add "文件" 命令,将项目的所有文件添加到仓库中 3