github回退及问题处理

上传大文件导致失败,GitHub和本地无法同步。

Posted by Rong on January 29, 2019

先描述下操作:

  • commit 一个大文件到github,由于大小限制(超出100M)导致同步失败。

    • 根据github提示,我进行文件压缩及使用工具上传,网速太慢加上下班,就忘了这事了(以为成功了)。
    • 多日后,修改本地文件并上传,一直上传失败,试了调大config参数到524288000还是有问题。
        [http]
        postBuffer = 524288000
      

      到这的时候就想着保存本地修改并回滚。

看下git模型:

git-tree

Working Directory就是我们本地工作区,Index就是提交暂存区,HEAD是当前分支引用的指针。

  • –hard:重设index和working directory,从<commit>以来在working directory中的任何改变都被丢弃,并把HEAD指向<commit>
  • –soft:index和working directory中的内容不作任何改变,仅仅把HEAD指向<commit>。自从<commit>以来的所有改变都会显示在git status的“Changes to be committed”中。
## 使用git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]重置
## 查看下提交记录
git reflog
## 安全回退到倒数第二次提交
git reset --soft HEAD@{2}
## 看下状态,上两次提交的存到本地工作区了
git status
## 提交
git push 

当git push时又报:

# git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
    git push --set-upstream origin master		
## 根据提示输入git push --set-upstream origin master 再看下状态
git status
git diff master origin/master

对git版本控制不是很熟悉,学了忘忘了查。

将本地的项目分享到GitHub步骤:

  1. git init
  2. git add .
  3. git commit -m “init”
  4. GitHub添加项目
  5. git pull origin master –allow-unrelated-histories
  6. git branch -a 查看分支
  7. git push origin master

推荐个好玩的网站:程序员音乐