Git安装配置
初始化配置
-
Windows可以直接从官网下载安装
Linux可以直接使用
yum install git
安装,也可以使用源码安装yum remove git -y # 安装编译依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz tar zxvf git-2.9.5.tar.gz cd git-2.9.5 ./configure --prefix=/usr/local/git/ make && make install
然后在 git bash 中配置全局的
name
和email
$ git config --global user.name "name"
$ git config --global user.email xxx@xx.com
- 生成公钥
$ ssh-keygen -t rsa -C 'xxx@xx.com'
rsa 为密钥的类型
在生成公钥过程中需要Enter三次,第一次可以自定义生成的文件的位置,也可以采用默认的路径(用户目录 .ssh 下);
接着是输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),当然,你也可以不输入密码,直接按回车(这样push的时候就不需要输入密码,直接提交到github上了);
最后windows下默认会会在用户目录 .ssh 下生成 id_rsa
和 id_rsa.pub
文件
- 在
Github
或Gitlab
上传密钥,setting
中找到ssh
并添加把第二步中生成的id_rsa.pub
中的内容粘贴;title
随意,不过最好能够区分不同的机器。 - 在git bash中测试,测试后会在.ssh 目录下的
known_hosts
文件中记录访问过的公钥,主要是防止DNS攻击。
$ ssh-keygen -T rsa -C 'xxx@xx.com'
$ ssh-keygen -v rsa -C 'xxx@xx.com' # debug模式可以查看哪一步出错,一般rsa -C可以省去
问题
- 私服的git地址、端口等配置,也可以在这个
config
文件中配置多个(eg:公司的私服和自己Github)
新建config
文件,可以配置自己服务器的IP、端口、公钥的位置。
Host xx.xx.xx.xx
Uset xxx@xx.com
Port 22
IdentityFile ~/.ssh/id_rsa
也可以直接以ssh的形式并指定端口,配置某个本地仓库的连接信息:
git remote set-url origin ssh://git@domain.com:3022/~/Projects/p1.git
也可以用https的形式配置某个本地仓库的连接信息(这样就不用端口信息了)
git remote set-url origin https://github.com/Projects/p1.git
不过还是推荐使用config
文件的形式
- 连接Github时
Host Key Verification Failed
路径下C:\Users(yourname).ssh 只有两个文件: id_rsa 、 id_rsa.pub;而没有文件known_hosts
使用 ssh-keyscan -H github.com >> ~/.ssh/known_hosts
生成known_hosts
- git bash 中文乱码
在git bash下,右键 -> options -> Text -> Character set -> UTF-8