【ubuntu】ubuntu下git和github的使用

github连接到本地

git安装

创建github用户

ssh连接

本地设置用户名和邮箱

git config --global user.name "username"
git config --global user.email "test@gmail.com"
sudo apt-get install ssh

生成SSH密钥,邮箱是配置相同的地址,这里有三个回车就好

ssh-keygen -t rsa -C "test@gmail.com"

会在~/.ssh目录下生成本地密钥,查看公开密钥,复制到github

cd ~/.ssh
cat id_rsa.pub

github设置SSH连接

登陆github

  • 点击右上角的头像会出现一个 Setting选项
  • 进入Account Setting页面后看到左边的列表
  • 点击SSH and GPG keys选项
  • 点击SSH keys右边绿色(New SSH key)的按钮
  • 跳转到新页面将你复制的内容(id_rsa.pub)粘贴到Key的文本框中,Title可以随便取
  • 点击绿色(Add SSH key)按钮
  • 页面会跳转回之前的界面,如果成功会显示一串字符(SHA256算法加密的身份验证),可以看到这串字符和之前创建ssh时的fingerprint是完全一致的

验证

第一次运行时要输入一个yes

ssh -T git@github.com

传输大文件

一般会有其他的数据集仓库保存,类似Hugging Face,但是git里面也会有图片,PDF之类,还是需要大文件传输
为了成功上传大于100M的文件到github中,需要使用Git LFS工具。
下载安装Git LFS
在Git LFS官网Git Large File Storage上下载Git LFS客户端并安装。

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

在git仓库中启用lfs,在git仓库目录中

git lfs install

输出

Updated git hooks.
Git LFS initialized. 

使用git lfs跟踪大文件,会自动生成隐藏文件.gitattributes

git lfs track A.pdf

将大文件和.gitattributes添加到代码区,并push到远程代码仓库

git add A.pdf 
git add .gitattributes

git commit -m "Add A.pdf and .gitattributes ."

git push origin master

git的一些报错

 ! [remote rejected] main -> main (pre-receive hook declined)
 error: 无法推送一些引用到 'git@github.com:××××/××××.git'

重新git clone,然后复制推送不了的修改文件到clone的文件夹中,重新git push

提交大文件出现问题

已经通过git提交过的大文件,再次使用lfs提交一次,可能会报错
知道未提交大文件的最后一次commit时的方法
退回提交前的版本

git reset ******(此处填未提交A.pdf时的commit状态哈希值,可以只填前6位)

重新提交

不确定未提交大文件的最后一次commit时的方法
将大文件删除,然后,重写commit并清理回收空间,再重新提交

git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch A.pdf' --prune-empty --tag-name-filter cat -- --all

如果此时报错:(作者未尝试)

Cannot rewrite branches: Your index contains uncommitted changes.

使用如下命令解决:

git stash

清理和回收空间

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now

GIT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值