Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
github的SSH配置如下:
一 、
设置Git的user name和email:
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"
二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “email@email.com”
按3个回车,密码为空。(email@email.com是github的账号,即上面的email)
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa.pub
3.添加id_rsa密钥到ssh,命令为:ssh-add 文件名
如果出现error:Could not open a connection to your authentication agent.
则先执行:$ssh-agent bash
然后再执行:$ssh-add id_rsa
4.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。
打开https://github.com/ ,登陆,复制id_rsa.pub里面的内容添加ssh。
如果直接从Linux上复制id_rsa.pub的内容,可能会复制里面的换行符,而key是没有换行符的,直接复制可能会出现下面的错误提示:
Key is invalid
Fingerprint has already been taken
Fingerprint cannot be generated
解决方案:
$cat id_rsa.pub
然后复制里面的内容,就OK了!
5.测试:ssh git@github.com 连接成功!
PTY allocation request failed on channel 0
Welcome to GitLab, ***!
Connection to github.com closed.
三、 开始使用github
1.获取源码(在本地创建一个目录,进入目录git clone):
$ git clone git@github.com:billyanyteen/github-services.git
2.这样你的机器上就有一个repo了。
3.git于svn所不同的是git是分布式的,没有服务器概念。所有的人的机器上都有一个repo,每次提交都是给自己机器的repo
仓库初始化:
git init
生成快照并存入项目索引:
git add
文件,还有git rm,git mv等等…
项目索引提交:
git commit
4.协作编程:
将本地repo于远程的origin的repo合并,
推送本地更新到远程:
git push origin master
更新远程更新到本地:
git pull origin master
补充:
添加远端repo:
$ git remote add upstream git://github.com/pjhyett/github-services.git
重命名远端repo:
$ git://github.com/pjhyett/github-services.git为“upstream”