搜索
您的当前位置:首页正文

Git项目管理--通过ssh提交代码

来源:哗拓教育

适用人群:使用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 settings
ssh 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成功!

完成。欢迎留言。

Top