【Github】【Ubuntu】如何创建库repositry、上传(大)文件、常用代码

前言

在折腾了一天后,总算摸清了用git实现代码管理的基本套路。

正文

一、github如何添加仓库

因为是第一次操作,在看不懂英文和不熟悉的情况下,还是比较吃力的。这一步网上教程比较多,直接贴个链接,以下是简单的概括:

🕐 在首先 new 一个 “仓库”——repositry

🕑在详细的创建栏作一些选择。这一步可以不用选择添加 README.md,它默认会产生main分支,在该分支下添加这个README.md,可能并不是你所打算的;另外,如果没有添加,你的仓库界面会给出从终端上传代码的基本指令,还是比较实用的,如下:

(但是还用不了,你还得在本地创建一个同名的文件夹作为你的仓库的本地仓库。在本地创建一个和你的仓库同名的文件夹,在该文件夹下打开终端,再执行以下上传文件的基本代码

create a new repositry on the command line.添加了一些注释,复制请小心

echo "任意,比如你的仓库简介"  >> README.md
git init
git add README.md      //可多次add,但是建议一次一个文件(夹)地上传,因为报错的时候好检查。
git commit -m "first commit" //相当于把你上面add的所有文件都给一个相同的 "记录",保存在“缓冲区”,
//缓冲区的大小在你init时设定了默认值,后续可以修改;上传的文件大小超出缓冲区时会报错
git branch -M main //创建分支,相信很多人也见过master,就是这样创建的
git remote add origin https://github.com/<你的用户名>/<仓库名>.git   
//是用户名,不是昵称哈。这样输入后续是需要输入昵称和token的,不方便。看1.1
git push -u origin main // 如果你的分支不是main,记得修改,比如分支是master 的话。
// -u 不是必须的,但建议有
1.1 使用token

点击头像 -> Setting -> 左边菜单栏最底下的Developer Setting -> Personal access token 的 classic -> generate new token -> 给一定的权限,不好截图,放个 链接但请小心,使用token的代码需要修正,如下: ( token可用邮箱保存下来

git remote add origin https://<your_token>@github.com/<USERNAME>/<REPO>.git

your_token:换成你自己得到的token
USERNAME :是你自己github的用户名
REPO :是你的仓库名称
例如:

git remote add origin https://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@github.com/creation/master-thesis.git/

提示一下 ,终端里需要输入“密码”的地方其实都需要输入token,密码验证已经被git舍弃了

1.2小结

OK,到这里基本的入门操作就结束了,然而,实际使用中会遇到很多问题,这里会介绍一些比较重要的解决问题的手段和思考方式,避免手忙脚乱地在网上胡乱地搜索一通还解决不了问题。

二、上传大文件(>100MB

Github限制了上传文件的大小,意图把社区做成代码交流的场所,而不是代码仓库。如果你的文件里有地图文件,大几百MB的,甚至是几GB的bag,建议先删除;还有你catkin_make产生的bulid和devel,建议也删掉,占了好几十MB呢。

当然我猜测很多人在不知道Github限制上传大小的情况下还胡乱commit了好几次,导致后续不管怎么去删除超过限制的文件,每次commit都还是能看到它们。

2.1查看并删除你的上传到缓冲区的文件(了解上传过程)

参考链接

简单地说,在上传过程中,你的文件有两个状态:缓冲区文件(commit但没push)和已上传文件。只要你push了报错了就算是成为"缓冲区文件了"。

通过git cherry 查看缓冲区文件,最上面的“一串随机码”是最老的,git reset [随机码]命令撤销之前的版本
在这里插入图片描述比如你想撤销上面的全部,需要选c44那个码,执行后,只用c44这条commit会留下。

git cherry是查看所有没有push的版本,如果版本A之前的版本都push过,就应该用git log查询所有版本。ctrl+q 退出 git log

在这里插入图片描述
上图 1f41dc6d057d5f586f1f0f78dc8497d276c5a498是最初版本,已push

c446f73e7e2d1dfe364220793339468aa98f93d5是本地提交,但没上传远程的版本

如果要撤回c446f73e7e2d1dfe364220793339468aa98f93d5

就要git reset 1f41dc6d057d5f586f1f0f78dc8497d276c5a498

之后再add,然后commit,再push就成功了。

这一套下来你应该对 commit 和push 有了更深的理解。在走完这一步,再上传大文件是还需要2.2的内容。

2.2 lfs上传大文件

参考链接1
参考链接2

2.3 缓冲区扩容

参考链接

表示设置为5G,完成后重启终端

sudo git config --global http.postBuffer 5242880000

sudo git config --global https.postBuffer 5242880000

git config --list 查看设置值

三、常用指令(常遇到的问题

1.强制上传 +<分支名>:https://blog.youkuaiyun.com/weixin_42322256/article/details/123937944
(谨慎使用

2.git add 卡住不动 ,文件太大了:https://blog.youkuaiyun.com/doubleguy/article/details/128531463

3.src refspec master does not match any.没有初始化仓库, git init 开始按步骤进行即可。 参考链接

4.git添加不了子仓库的解决办法。可能是你下载的包里有.git文件,需要删除。参考链接

5.一些git指令整合
https://blog.youkuaiyun.com/qq_48322523/article/details/121021377

6.! [remote rejected] master -> master (pre-receive hook declined) 这个报错有时候不是真的如它所说的,可能就是你的文件里有大文档导致的。 如果真的想以此纠错,参考链接

7.remote: Support for password authentication was removed on August 13, 2021
这个报错就是之前说的,密码验证被取消的事情。 查看链接

8.网上很多“克隆到本地”的操作,我没那么做,所以没有什么建议。

四、结语

学习新的东西确实比较坎坷,愿你我都能静下心来,克服困难。

觉得有用别忘了点赞收藏~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值