聊下 git 使用前的一些注意事项

链接方式https、ssh

在使用git的时候,无论你的服务器是开源平台github仍是私服gitlab,你都须要clone仓库到本地,这个clone的时候就须要你选择链接方式。这个链接方式决定了你与服务器交互的时候以一个什么协议进行。若是你没搞清楚这两种方式,可能你在使用的时候会很困惑,别人在push代码的时候没有提示输入帐号密码,而你却有,至少我当初有过这个问题。git

可选择的协议有https、ssh两种,这从git repository仓库的地址就能分辨出来。github

1

这是我6年前的开源项目,套打组件。拿这个作例子,红色范围内的地址就是ssh的链接地址。你能够经过”Use HTTPS”切换使用https链接地址。算法

2

3

这是两种方式链接git服务器。在clone的时候地址就决定了你的交互协议。这两种方式与git服务器交互的区别体如今你每次push代码的时候。https协议在你每次push的时候都要求你输入git帐号密码,这种方式通常多用于那些你不多push代码的场景。ssh是用于那些工程开发,你须要频繁push代码的场景。服务器

https的帐号就是你的git服务器给你分配的,每次push的时候会有一个文本框提示你输入。ssh

ssh的使用须要你的仓库管理员为你设置一个公钥,这样你每次push代码的时候git服务器才知道你是谁。这是采用RSA(公钥加密算法)也称非对称加密算法,RSA产生一对密钥(公钥和私钥),你只须要将你的公钥提交到git服务器上便可。当你每次push代码的时候就会使用这对密钥来加解密且验证身份。gitlab

你可能会问,为何我不是把私钥设置到服务器中而是公钥,若是你真的这么想了,也不奇怪。可是你再进一步想,RSA的算法执行顺序就知道了。加密和解密的逻辑是不一样的,你提供反了密钥是执行不了的。加密

git客户端生成ssh密钥对网上有不少文章,这里就不重复了,主要使用ssh-keygen命令。生成好了以后在你的.ssh目录下会有一对密钥文件。url

4

5

复制.pub文本文件中的公钥,到你的github服务器上设置,在settings/profile下。spa

6

7

添加一个新的sshkey。每个sshkey的使用都有时间记录。若是没有被使用过,ssh的绿色钥匙是灰色的。这样你就完成了git链接远程仓库,且能够随时push代码了。开始你的git之旅吧。blog

git user.name、user.email、commit log 中的帐号泄露问题

在使用git进行一系列开发以前,你须要设置下当前git客户端所表明用户是谁。这样你在commit代码的时候,commitlog中会显示Author是谁,邮箱是谁。

Author: plen-wang <wangqingpei557@163.com>

那么怎么设置用户名、邮箱尼。你可能使用git config global user.name、git config global user.email来设置全局的帐号和邮箱。

这么作没错,可是这么作有一个问题,就是当你切换不一样的git repository的时候你的commitlog就有问题了。由于你设置的是全局用户名和邮箱,想一想看若是你在公司使用的是gitlab,而后的你的用户名和邮箱是公司内部的,忽然你切换到外部的github的仓库上,进行代码开发和commit,想一想看你的commitlog里会出现什么状况。

在git客户端里有两种用户名和邮箱,一个是全局,也是默认的。一个是仓库级别的。因此当你使用global做为你平时的默认设置时不要紧。可是一旦clone一个新的仓库的时候记得设置当前仓库级别的用户名、邮箱。

查看全局用户名、邮箱,git config --global user.name,git config --global user.email
查看当前仓库的用户名、邮箱,git config user.name,git config user.email

设置全局用户名、邮箱,git config --global user.name “plen-wang”,git config –global user.email “plen-wang@163.com”

设置当前仓库的用户名、邮箱,git config user.name “plen-wang-xxx”,git config user.email “plen-wang-xxx@163.com”

你能够经过git config --list 来查看全部的配置

8

这里面会出现两组user.name、user.email 的设置。最上面的北色框里的都是全局配置,下面的白色框里的是当前仓库的配置。你能够经过查看remote.origin.url来识别。

相关文章
相关标签/搜索