ubunutu22.04连接github
1. 安装/查看 Git
如果你已经安装好了 Git,可以忽略这一步
# Ubuntu 安装 Git
$ sudo apt-get install git
# 查看 Git 版本信息
$ git version
# 配置 Git 用户信息(必须配置,格式正确,其他随意)
$ git config --global user.name "your name"
$ git config --global user.email "youremail@gmail.com"
2. 开启 SSH 服务
# Ubuntu 安装 SSH
$ sudo apt-get install ssh
# 查看 SSH 服务状态
$ ps -e | grep sshd
出现类似下图的字符,说明运行成功
3.用vscode连接虚拟机,方便复制公钥
- 可以参考这篇文章:https://blog.51cto.com/u_14201949/2832627
4.生成SSH KEY
# 切换到./ssh目录
$ cd ~/.ssh
# 生成ssh key,""里面的字符串可以随便写,-f后跟随保存公钥的文件名
$ ssh-keygen -t rsa -C "yourname@gmail.com" -f 文件名
下图的路径不要改,会出现不必要的错误。文章后面也给出了解决办法
# 复制ssh key(公钥:.pub文件),vim打开后复制
$ vim UTM-ubuntu.pub
# 默认的密钥文件名
$ vim id-rsa.pub
5.github上添加ssh key
添加 SSH key 之后,Linux 就可以通过 SSH 建立本地 Git 与 GitHub 的连接了
测试连接
ssh -T git@github.com
出现报错:
原因:因为创建密钥时自己指定了文件名
git@github.com: Permission denied (publickey)
debug:
如果出现错误提示:
请执行命令:eval ssh-agent -s
后,继续执行命令 ssh-add ~/.ssh/id_rsa,这时候一般OK了。
6.在github上创建新仓库
7.连接仓库
# 如果建立远程仓库时选择自动创建了README.md,最好选择这个步骤
# 切换到根目录
$ cd ~
# 把远程仓库克隆到本地
$ git clone git@github.com:xxx/xxx
# 进入本地仓库
$ cd xxx
$ echo "# HEMS_NILM_Bayesian" >> README.md
$ git add .
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin xxx@girhub.com:xxxx
$ git push -u origin main
使用 git push origin master命令,实际上是把当前分支master推送到远程
由于远程库是空的,我们第一次推送master
分支时,加上 –u
参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
只要本地作了提交,就可以通过如下命令:git push origin master
把本地master分支的最新修改推送到github上了
不使用clone方式,直接在本地初始化仓库
# 如果创建远程仓库时没选择自动创建README.md。用这个步骤
# 进入本地目录,以test1为例
$ cd ~/test1
# 初始化本地仓库
$ git init
# 第一次提交的流程
$ echo "# HEMS_NILM_Bayesian" >> README.md
$ git add .
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin xxx@girhub.com:xxxx
$ git push -u origin main
后序提交流程:
$ git add 文件名/文件路径
$ git commit -m "提交的说明"
$ git push origin main
debug
- 在
git oush
时报错:拒接合并不相关的历史
git pull origin "分支名" --allow-unrelated-histories