Git错误解决大全

以下所有命令都在git bash中进行,如何安装git bash可以参考这篇博客

1.错误1:git提交代码出现错误fatal: Unable to create ‘项目路径/.git/index.lock’: File exists.

rm -f ./.git/index.lock

2.错误2:failed to push some refs to 'ssh://git@localhost:*/user/project.git’

在git使用时,需要将本地修改的代码提交到远程库时,push时却出现以下错误

To ssh://git@localhost:*/user/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'ssh://git@localhost:*/user/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first 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.

这是为什么呢?
原因是,在你关联本地库和远程库以后,两者的文件是一致的,之后,你修改了本地库的文件,同时远程库的文件也被你修改了。当两者都有修改的时候,由push方(这里是本地库)来先做远程库和本地库的合并之后,再提交本地库的修改到远程库。因此需要在commit和push之间,做pull操作,即按以下步骤提交修改:

git add *
git commit -m 'change'
git pull
git push origin master

输出的log中没有error或hint,提交成功啦恭喜(**ps**:其实当出现错误时,输出的log中都已经告诉大家解决方案啦

3.错误3:remote: error: GH001: Large files detected.

在使用git push时有时出现下面的错误:

remote: error: GH001: Large files detected. 
You may want to try Git Large File Storage - https://git-lfs.github.com.

这是为什么呢?其实这是因为你要push的文件太大,超过git的上传限制了。
根据提示, 我们知道需要安装Git LFS。这个是Github的官方“大文件支持库”,下面提供给大家windows下的安装步骤:
##Git LFS在windows下的安装步骤
**1.Git Lfs的下载地址 **
https://git-lfs.github.com/
2.下载完成后,按照普通软件安装步骤,一直next安装即可

3.然后打开Git Bash,输入git lfs install,出现以下提示说明安装完成
这里写图片描述
这里写图片描述

使用Git LFS上传大文件

接着我们要上传刚刚上传失败的文件了。
1.在你要上传的文件目录下,输入git lfs track ‘filename’

注意git lfs track 'filename’的filename指你要上传的文件夹或文件名字,下面我以上传文件夹data为例

这里写图片描述
2.然后在你当前目录下会生成1个隐藏文件.gitattributes,如果你想查看,可以输入ls -al来查看
这里写图片描述
3.然后输入git add data

4.将其提交git commit -m ‘first’

5.push到github中,git push -u origin master

提交成功啦~恭喜(PS:如果还没有提交成功的话,那么就参考错误4,如下)

4.错误4:已经安装了Git LFS,但是仍然出现不能上载超过100MB文件的问题,错误提示是“ this exceeds GitHub’s file size limit of 100.00 MB …”

我参考了这篇文章,发现原来是我之前失败的提交记录还在,导致现在不能用LFS服务成功提交,但是按照这个博主说的git reset的方法回退到以前的版本的做法比较繁琐,我干脆之间从头开始重新提交了。具体做法是:
1.将本地的要上传到github上的项目中.git文件和其他由于git bash指令自动生成的.*文件都删除了。
2.然后删除github中原先和本地关联的项目地址
(PS:如何删除github中的项目,我直接转载了别人的文章,看这里。)
3.再在github中新建项目仓库,得到http的地址 https://github.com/XXX/XXX.git
4.接着对本地项目库重新git init,具体操作如下

git init
git remote add origin https://github.com/XXX/XXX.git

5.然后再分别提交“小于100MB的文件” 和 “大于100MB的文件”
其中小于100MB的文件直接 git add
其中大于100MB的文件使用 git lfs track 'xxx’来提交,(PS:XXX表示文件名,提交方式可以参考本篇文章的错误3的解决方案)
值得注意的是,如果你要提交的是文件夹,而文件夹里面有很多个超过100MB的文件,那么直接track这个文件夹的话,很容易push超时,那么我们可以分别track这个文件夹中的各个文件,单独push,这样会比较容易成功!比如下面的方式:

git lfs track XXX/xxx.npz
git add XXX/xxx.npz
git commit -m 'add big data'
git push -u origin master
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值