美文网首页
github不小心同步覆盖了本地文件

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

作者: qwerer | 来源:发表于2017-08-08 10:49 被阅读0次

    我在两个电脑上修改一个项目,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

    然后

    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.

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

    git pull
    如果有冲突,解决冲突
    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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/mbqtrxtx.html