适用人群:使用Git管理项目。
本文内容:Git项目管理--通过ssh提交代码。
1.本文的源头
✗ git push
Enumerating objects: 250, done.
Counting objects: 100% (250/250), done.
Delta compression using up to 4 threads
Compressing objects: 100% (138/138), done.
Writing objects: 100% (167/167), 23.89 MiB | 37.18 MiB/s, done.
Total 167 (delta 86), reused 0 (delta 0)
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Everything up-to-date
2.正题:使用ssh提交代码
先cd到项目根目录,即为git所在目录。
步骤:
1)配置用户名和密码(配过也可再来一次)
2)创建ssh秘钥和公钥(亲测复制以下代码执行会出现错误,需自己手打以下命令)
过程中会让你输入文件名,这里无所谓输入什么,比如我输入:test_ssh
回车,完成。
这时可以看到git目录生成了两个文件:test_ssh私钥文件和test_ssh.pub公钥文件。
3)打开公钥文件,复制全部文本。这里我使用Xcode打开的。示例文本如下:
4)登录Gitlab,点击右上角的profile settings,找到ssh key,如下图所示:
profile settingsssh key
把上文复制的公钥添加到这里即可,ssh key 文件title命名无所谓什么都可以。
5)ssh配置完成了。可以设置git了。还记得上文中,假定的ssh地址为:ssh地址为::ios/xxx.git
6)git pull拉取下试试。我这里会报错,让输入密码,怎么输都报错无权限:
✗ git pull
password:
Permission denied, please try again.
password:
Permission denied, please try again.
password:
Permission denied (publickey,password).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
怎么解决?看第7步。
7)上文原因是ssh-agent服务没把私钥包含进去。
如何做?
(1)终端执行命令:
eval "$(ssh-agent -s)"
(2)复制公钥文件的地址,示例地址如下(地址A):
/Users/xiaoming/Documents/Project/aaa/test_ssh
(3)终端执行命令(用上一操作的的地址(地址A)):
ssh-add /Users/xiaoming/Documents/Project/aaa/test_ssh
(4)终端打印:
8)再次执行git pull,发现拉取成功。试试git push,发现之前大文件报错的问题不再出现,直接push成功!
完成。欢迎留言。