SSH & Git
git过关: https://learngitbranching.js.org/
some tips for git setup and git config
Git与Github的用户名与邮箱
Q:为什么配置好git的用户名邮箱后,push的时候依然需要输入用户名密码或预先配置SSH key?
A:配置的git用户名和邮箱是区分commit时不同的用户;输入的用户名密码或SSH key是区分是否有push权限。(多人共用一台电脑要区分不同用户的commit,或者分布式下多人commit到公司服务器;然后再从公司服务器push到github上。)
1.github注册时,需要设置github-username、github-email、github-password ; 2.github注册后,可以另外设置自己的name(昵称)和email,只是用于对外展示(和注册时的github-username(用户名)、github-email没有关系) 3.本地的git需要设置用户名和邮箱,其本质是本地git客户端的一个变量,不随git库改变,但也可以为某个库单独设置用户名和邮箱,github或码云等都是根据git客户端的用户名和邮箱来进行contributions统计的,每次commit的记录也是使用git客户端的用户名和邮箱,所以当客户端邮箱、用户名和github邮箱、用户名不一致时,会导致github无法统计contributions,这是由于客户端的用户名、邮箱并不对应真实的github账号,所以无法统计。 结论:尽量将git客户端的用户名、邮箱和github账号的用户名、邮箱设置为完全一致; /*********************************\ \*********************************/ 相关命令 查看当前库的用户名和邮箱命令: git config user.name git config user.email 设置当前库的用户名和邮箱 git config user.name "xxxxx" git config user.email "xx@qq.com" 设置全局的用户名和邮箱 git config --global user.name "xxxxx" git config --global user.email "xx@qq.com"
Git操作步骤
2. ssh-keygen (ssh配置)(SSH的首次连接会下载服务端的公钥,用户确认后公钥将被保存并信任。下次访问时客户端将会核对服务端发来的公钥和本地保存的是否相同,不同就发出中间人攻击的警告拒绝连接,除非用户手动清除已保存的公钥。)
(
//ssh-copy-id 将src公钥写入 dst:~/.ssh/authorized_keys
~/.ssh目录下生成以下文件
id_rsa // 私钥文件
id_rsa.pub // 公钥文件,免密登陆就是将该公钥追加到服务器的authorized_keys文件中
authorized_keys // 作服务端用时,存放客户端公钥的文件
know_hosts // 作客户端用时,存放确认过公钥指纹的可信服务器列表的文件
config // 指定不同域名使用哪个密钥的配置文件
)
3. git clone REMOTEURL(https/ssh) foo
(
# mkdir foo
# cd foo
# git init
# git remote add origin REMOTEURL
# git pull origin master
URL有多种格式,在push的时候,https需要提交用户名和密码(可用凭证存储管理用户名密码而不需要每次输入),ssh在有ssh key的时候不用提交用户名和密码
)
4. git pull/add(remove)/commit/push...
http://www.cnblogs.com/tugenhua0707/p/4050072.html