Git error

error: RPC failed; result=18, HTTP code = 200bytes/s

当 git clone 一个项目下来的时候,发生错误


lizs@lizs-pc:~/app/we7$ git clone https://xxx@bitbucket.org/xxx/xxx.git Cloning into 'project_name'... Password for 'https://xxx@bitbucket.org': remote: Counting objects: 4168, done. remote: Compressing objects: 100% (3275/3275), done. error: RPC failed; result=18, HTTP code = 200bytes/s fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed

可能由于仓库文件比较大,而 curl 的 postBuffer 的值比较小的原因造成的。我们可以配置当前项目或者全局 postBuffer 的值的大小来解决这个问题。

设置当前项目的 postBuffer 属性:


git config http.postBuffer 524288000

设置 git 的 postBuffer 全局属性


git config --global http.postBuffer 524288000

Git pull:commit your changes or stash them before you can merge. Aborting

git pull 更新代码的时候,出现了这个错误,因为你本地做了修改,而且托管代码的服务器上也有新的提交。

解决方法

  • #### commit 本地代码

  • #### 将本地修改暂存到 Git 栈中

可以先通过 git stash 将本地修改暂存到 Git 的栈中,git pull 之后,再通过 git stash pop 来将之前本地做的修改应用到当前工作区。


git stash git pull git stash pop
  • `git stash`:备份当前工作区的内容,让工作区保持和上次提交的内容一致。同时,将当前工作区的内容保存到 Git 栈中。
    
  • `git stash pop`:从 Git 中读取最近一次保存的内容,恢复到工作区。由于可能存在多个 stash 的内容,所以用栈来管理,pop 会从最近的一个 stash 中读取内容并恢复。
    
  • `git stash list`:显示 Git 栈内的所有备份。
    
  • `git stash clear`:清空 Git 栈。
    
  • #### 放弃本地修改

git reset --hard git pull
  • git reset --hard:回滚到上次提交状态。