如何在GitHub上传大文件(≥100M)

搬瓦工精品GIA

学习工作中,有时会遇到需要将一些资源上传到GitHub的仓库(repository)上去,比如一些训练完的模型。但GitHub对于直接上传的文件有大小限制,超过100M的文件需要使用Git LFS才能上传。以下是我根据各位大神和自己的实操经历,总结的上传流程。

如何在GitHub上传大文件(≥100M)

  • 一、下载Git客户端
  • 二、下载Git LFS (Git Large File)客户端
  • 三、上传文件

一、下载Git客户端

1、官网链接:https://git-scm.com/downloads/
2、安装过程:
基本上是一路默认Next,除了(以下步骤根据版本不同会有差别,但基本相同):
(1) 选择是否添加快捷方式到桌面

其中桌面浏览(Windows Explorer integration):选择浏览源码的方法,使用bash 或者Git GUI工具。
(2) 根据自己的情况,选择程序的安装目录

(3) 开始菜单快捷方式目录:设置开始菜单中快捷方式的目录名称, 也可以选择不在开始菜单中创建快捷方式。

(4) 设置环境变量,选择使用何种命令行工具,有三个选项:Git自带的Git Bash命令行工具、Windows系统的命令行工具、两者都要。一般默认使用Git Bash就可以了。

3、安装完毕
在开始菜单可以看到:

二、下载Git LFS (Git Large File)客户端

1、官网链接:https://git-lfs.github.com/
2、安装:双击安装应用程序,然后自行选择安装目录即可。如:

三、上传文件

1、准备工作:
(1)在电脑中自选目录新建一个文件夹(例:D:/Git/test3);
(2)在GitHub上新建一个仓库(Repositories),GitHub有官方教程:

2、打开Git Bash,进入刚刚新建的文件夹:

1
cd /d/Git/test3

回车

3、初始化仓库:

1
git init

 

 

回车,就会出现:

这个时候你打开你刚刚新建的文件夹,就会看到生成一个新的 .git文件夹(如果看不到,可能是被隐藏起来了,找到上方菜单中“隐藏的项目”,打勾就行了。)

4、安装git lfs(一个仓库里面执行一次就好了)

1
git lfs install

回车

5、将需要上传的文件放置test3文件夹中,跟踪一下你要上传(push)的文件或指定文件类型(以指定文件model.h5为例)

1
git lfs track “*.h5” 或者 git lfs track “model.h5”

 

 

回车

6、添加.gitattributes(配置文件,缺少它执行其他git操作可能会有问题,具体作用不详述)

1
git add .gitattributes

回车
PS:最终上传完毕后会在GitHub上看到:

7、添加要上传(push)的文件

1
git add model.h5

(如果文件名中间有空格,用双引号引起来,如git add “CNN model.h5”) 回车

8、提交(commit)

1
git commit -m “任意文字”

git status 之后是红色说明还没有保存任何

git add

文件名字变绿色就可以跳到到上传了

查看连接 git remote -v

上传 git push origin master

 

回车

PS:题外话,“任意文字”是用于最终上传成功后github上文件的描述:

9、将本地与新建仓库进行配对

1
git remote add origin https:github.com/H****/****.git

 

 

回车

获取仓库地址:

10、生成密钥,放在远程仓库

1
ssh-keygen -t rsa -C 38*******@qq.com

回车
会出现下图,回车三次即可

打开新生成密钥的文件的地址,可以看到:

用写字板打开id_rsa.pub文件并复制其中内容。
11、在GitHub上新建SSH key
操作:
(1)

(2)

12、让上传看起来更连续,而不是多出很多无用的merge commit

1
git pull –rebase origin master

回车

13、正式上传

1
git push -u origin master

 

 

回车(静静等待即可,会受网络影响,最好不要使用VPN)

14、上传成功

git push 出现Everything up-to-date 解决方法

如果你之前没有提交过文件,而你在git push的时候出现Everything up-to-date,并且文件也没有提交上去.可能是因为你没有git add 和 git commit.
需要重新执行:

git remote add roigin  https://github.com/  【github地址】

git add .
git commit -m “message”
git push origin master

 

假如出现如下提示,必须强制PUSH

刚创建的github版本库,在push代码时出错:

$ git push -u origin master
To [email protected]:******/Demo.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:******/Demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

网上搜索了下,是因为远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

有如下几种解决方法:

1.使用强制push的方法:

$ git push -u origin master -f

这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

2.push前先将远程repository修改pull下来

$ git pull origin master

$ git push -u origin master

3.若不想merge远程和本地修改,可以先创建新的分支:

$ git branch [name]

然后push

$ git push -u origin [name]

转载请注明阿虎爱分享http://ahushare.com
阿虎爱分享 » 如何在GitHub上传大文件(≥100M)

发表评论

阿虎爱分享YouTube频道

立即查看 了解详情