Git生成sshkey并保存到码云
1、git仓库之间的代码传输协议主要使用ssh协议,需要使用ssh-keygen上传公钥,使用非对称加密传输。我们先来说一下如何生成sshkey。我们在下文中介绍过Git设置用户名和邮箱,使用git config --list查看如下:

2、接下来生成sshkey,使用命令:
ssh-keygen -t rsa -C "$your_email" 这里使用你上面设置的邮箱
在终端中敲上面的命令,会生成一对私钥和公钥,分别存在 ~/.ssh/id_rsa和~/.ssh/id_rsa.pub中。
使用下面命令查看公钥字符串:
cat ~/.ssh/id_rsa.pub
我们可以使用cd ~/.ssh进入到公钥在的目录,然后使用ls命令查看这个目录下有哪些内容。

3、我们使用 cat ~/.ssh/id_rsa.pub命令查看公钥的内容,然后将公钥复制出来,准备拷贝到码云上。

4、如果没有码云的需要先去申请一个码云账号,点击码云页面右侧的个人头像,然后选择设置,找到SSH公钥,然后在右侧拷贝上面的公钥即可。

5、初始上传代码,新建一个项目文件夹,如下图所示,然后进入到这个文件夹。打开git的命令行工具Git Bash,执行如下命令:
1. 初始化git仓库:git init
2. 拷贝或编写代码到工程目录下;
3. 添加文件到仓库 git add .
4. 提交代码到本地仓库:git commit -m 'init commit'


6、链接到码云,需要在码云上创建一个仓库,仓库创建好后在本地使用命令:
git remote add origin git@gitee.com:xxx/xxx.git, 后面跟的地址,在gitee的项目,选择“克隆/下载”--》“SSH”-->"复制“即可。
最后,push代码到服务器,使用命令: git push origin master


7、但是push的过程中报错了,我们使用
git pull git@gitee.com:xxx/xxx.git 先拉取远程的项目,
git branch --set-upstream-to=origin/master master 将本地的master分支和远程的关联起来再推送。
但是按照提示依旧会报
fatal: refusing to merge unrelated histories(拒绝合并不相关的历史)的错误,这是因为本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆就不会有这个错误了。
我们可以使用下面的命令解决:
git pull origin master --allow-unrelated-histories
以上是将远程仓库的文件拉取到本地仓库了。
我本地的README文件冲突了,解决完冲突后,先 add,再commit,最后push提交。
紧接着将本地仓库的提交推送到远程github仓库上,使用的命令是:


8、经过以上步骤,本地代码就成功提交到远程的gitee(码云)仓库了,如下图所示。
