一个ssh可以对应不同git网站(比如github与gitee),并且用户名也可以用同一个, 只不过有些人为了区分公司项目与个人项目而用了不同的标识。
1、git安装完就可以生成本地ssh密钥了:
ssh-keygen -t rsa
不要一路回车,提示输入生成路径跟文件名字的时候,自定义一下。
我因为需要两个密钥对, 所以就生成两次, 分别用于两个网站(说明:同一个密钥对是可以用于两个网站的)。
然后把他们放到同一个文件夹,我放在了.ssh文件夹。
2、在.ssh目录下用 touch config 命令来在该文件夹下生成config文件,编辑该文件:
# 配置github.com
Host github.com
HostName github.com
IdentityFile C:\\Users\\purehol\\.ssh\\rsa_github
PreferredAuthentications publickey
User purehol
# 配置gitee.com
Host gitee.com
HostName gitee.com
IdentityFile C:\\Users\\purehol\\.ssh\\rsa_gitee
PreferredAuthentications publickey
User purehol
其中:
(1)Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host abc这样定义的话,命令如下,即git@后面紧跟的名字改为abc
git clone git@abc:purehol/demo.git
(2)HostName 这个是真实的域名地址
(3)IdentityFile 这里是id_rsa的路径
(4)PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
(5)User 配置使用用户名
3、分别在自己的git网站添加ssh公钥(我的话就在自己的github跟gitee账号添加ssh公钥),然后分别测试一下:
ssh -T git@github.com
ssh -T git@gitee.com
4、接下来就是对项目的远程提交了
进入要提交的目录,然后"git init"初始化,
"git add ." 来添加所有到暂存区(.gitnore文件忽略的除外),
"git commit -m "first commit" " 来正式更改,这个时候会提示没有身份信息,这个时候有两种方式来添加自己的身份信息:
(1)全局身份信息,以后所有git都可以用此账户
git config --global user.name "purehol"
git config --global user.email "purehol@purehol.com"
(2)局部身份信息,每提交一个 repositories都要在项目内设置
git config user.name "purehol"
git config user.email "purehol@purehol.com"
另外,查看git账户和邮箱使用:
git config user.name //回车后就显示用户名
git config user.email //回车后显示邮箱
修改邮箱和用户名:
git config --global user.name "username"
git config --global user.email "email"
5、开始push到远程
git remote add gitee git@gitee.com:purehol/NDKCameraGray.git //gitee这个可以改,尤其适用于多个远程项目的时候, 给每个设置不同的名字
git push -u gitee master //-u命令仅用于第一次提交
假如 git remote 之后 git push 之前我们想更改提交:
git remote -v //查看远程库信息
git remote rm gitee //删除名为gitee的待提交项目
常见error:
使用 "git push -u gitee master" 来初次提交的时候, 假如云端有README.md文件, 但是本地没有就会失败, 并且要求分支也一样。