Git——新建本地仓库并上传到Gitee

文章目录

  • 新建仓库且上传本地项目到仓库里
    • Step1 在Gitee上新建一个仓库
    • Step2 电脑安装git客户端、注册github账号并登陆
    • Step3 在本地项目目录创建本地仓库
    • Step4 关联本地仓库并上传代码
  • 如何传送超过100MB的大文件
    • 解决报错

新建仓库且上传本地项目到仓库里

Step1 在Gitee上新建一个仓库

Git——新建本地仓库并上传到Gitee_第1张图片
根据自己需要进行细节设置
Git——新建本地仓库并上传到Gitee_第2张图片

Step2 电脑安装git客户端、注册github账号并登陆

安装git后到本地项目文件夹右键选择git bash here
输入个人信息(代码提交者)

git config --global user.name "xxxx" 
git config --global user.email [email protected] 

Step3 在本地项目目录创建本地仓库

进入到项目文件夹,在Git Bash中输入

git init  

输入命令后项目目录会有一个隐藏的.git文件夹
在这里插入图片描述
上传所有代码到本地仓库

git add .  

git add . 是表示把当前目录下的所有更新添加至暂存区。有时在终端操作这个会提示:

warning: LF will be replaced by CRLF in ball_pool/assets/Main.js.
The file will have its original line endings in your working directory

原因:
这是因为文件中换行符的差别导致的。这个提示的意思是说:会把windows格式(CRLF(也就是回车换行))转换成Unix格式(LF),这些是转换文件格式的警告,不影响使用
git默认支持LF。windows commit代码时git会把CRLF转LF,update代码时LF换CRLF。

把文件提交到gitee仓库 通过命令 git commit -m "备注信息"将文件提交到gitee仓库

git commit -m "initial commit"

Step4 关联本地仓库并上传代码

复制你新建仓库的地址https://gitee.com/******/*******.git
输入以下命令

git remote add origin https://gitee.com/******/*******.git

通过命令 git pull 同步并合并(如果远程库不为空必须做这一步,否则后面的提交会失败)

git pull --rebase origin master

本地库内容推送到远程 – 使用 git push 命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传,如果在第三步中本地初始化git设置了名称或者邮箱,这一步就不会要求输入,会直接上传。

git push origin master

在使用git更新或提交项目时候出现"fatal: The remote end hung up unexpectedly "原因是推送的文件太大。
那就简单了,要么是缓存不够,要么是网络不行,要么墙的原因特别是资源库在国外的情况下。此问题可能由网络原因引起。
修改提交缓存大小为500M,或者更大的数字

git config --global http.postBuffer 524288000
# some comments below report having to double the value:
git config --global http.postBuffer 1048576000

但有的时候,原因是上传的文件过大,所以会出现以下的错误信息。网上的改法没有用,只能通过使用ssh方式提交才能解决。因此这里给出解决方法。

PS:当上传在git上提交了一个大于100M的文件,结果发现报错如下:

remote: error: File: f71bbf765b6c7b2c052c0907c0f846564cff515c 139.25 MB, exceeds 100.00 MB.
  1. 查看哪个文件超过了100M
git rev-list --objects --all | grep f71bbf765b6c7b2c052c0907c0f846564cff515c

输出结果

f71bbf765b6c7b2c052c0907c0f846564cff515c reentrancy_1671_fragment_vectors.pkl
  1. 从缓存中删除
git filter-branch --tree-filter 'rm -f reentrancy_1671_fragment_vectors.pkl' --tag-name-filter cat -- --all
  1. 重新push
git push origin master

当然会报错 要重新再pull拉取

  1. 重新pull拉取
git pull origin master

但会抱一个错

fatal: refusing to merge unrelated histories

出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程git仓库的克隆,本地仓库就不会有这问题了。
最终发现可以在pull命令后紧接着使用–allow-unrelated-history选项来解决问题(该选项可以合并两个独立启动仓库的历史)。

$ git pull origin master --allow-unrelated-histories

在重新push 但这样治标不治本 无法传送超过100MB的大文件

如何传送超过100MB的大文件

我们需要用到一个叫lfs的工具专门用来上传大文件的!!!

git lfs install

在这里插入图片描述
选择文件类型()这里我选择的是pkl类型 ,可自行换成 .zip之类的扩展名

git lfs track "*.pkl"

在这里插入图片描述
然后配置远程仓库
执行完上面的命令后,会生成一个.gitattributes文件,要将其上传到远程gitee仓库。这里我把.gitattributes和大文件分开上传。

git add .gitattributes
git commit -m '上传文件'
git push origin master(如果提交不了,后面可以加一个-f)

上传大文件

git add reentrancy_1671_fragment_vectors.pkl
git commit -m "上传大文件"
git push origin master

解决报错

这里的报错主要有两个

WARNING: Authentication error: Authentication required: LFS only supported repository in paid enterprise.
batch response: LFS only supported repository in paid enterprise.

在这里插入图片描述
然后第一个错误的解决方式是:

git config lfs.https://gitee.com/{your_gitee}/{your_repo}.git/info/lfs.locksverify false

命令中的{your_gitee}/{your_repo}是你的远程仓库地址,根据自己情况替换。

然后第二个错误的解决方式是:
删除.git/hooks/pre-push文件

rm .git/hooks/pre-push

重新push成功!

你可能感兴趣的:(django-cube项目开发,区块链测试,git,github,unix)