我是靠谱客的博主 大力黑夜,最近开发中收集的这篇文章主要介绍github不小心同步覆盖了本地文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       

昨天不小心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-mark502dd0f HEAD@{2}: rebase finished: returning to refs/heads/master  
  • 1
  • 2
  • 3

然后

git reset --hard 502dd0fgit 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 remotehint: counterpart. Check out this branch and integrate the remote changeshint: (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 whichbranch 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 tempgit checkout master
  • 1
  • 2
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

最后

以上就是大力黑夜为你收集整理的github不小心同步覆盖了本地文件的全部内容,希望文章能够帮你解决github不小心同步覆盖了本地文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部