今天工作有些东西需要整理,现在整理一下。
注意:本文首次撰写于2018-11-26,最近修改时间为2018-11-26,请注意相关程序的可用性与安全性。
安装
其实就是很简单的源码编译安装,但是官方给出的教程有点神奇,经过测试使用如下方法安装的:
localhost:software # wget -c https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
localhost:software # tar -zxvf git-2.19.1.tar.gz
localhost:software # cd git-2.19.1
localhost:software # ./configure
localhost:software # make && make install
如果安装期间报以下错误:
#install过程中出现了错误
http-push.c:18:19: fatal error: expat.h: No such file or directory
这是因为缺少相关模块,如果在联网情况下可以安装如下依赖:
# CentOS
yum install expat-devel
# SLES
apt-get install expat-devel
git的安装大概需要下面这些依赖
curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
Git客户端设置用户名与邮箱
localhost:software # git config --global user.name "ZNing"
localhost:software # git config --global user.email "[email protected]"
Linux/macOS可直接在终端执行,Windows请打开Git Bash执行。虽然这是全局设置,但是如果仓库有其他用户名和Email地址也可以对某个仓库指定不同的用户名和Email地址。
Git客户端生成SSH Key
-
创建 SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有
id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开终端(Windows 下打开 Git Bash),创建 SSH Key:localhost:software # sh-keygen -t rsa -C "[email protected]"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个 Key 也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到
.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。 -
登陆GitHub/Gogs或者其他的Git Server Web端,打开“Account settings”(账户设置) - “SSH Keys”(SSH密钥)页面。然后,点“Add SSH Key”(添加密钥),填上便于自己以后识别的Title(密钥名称),在Key(密钥内容)文本框里粘贴
id_rsa.pub
文件的内容。点“Add Key”(添加密钥),你就应该看到已经添加的Key(密钥)了。为什么GitHub等Git Server需要SSH Key呢?因为这些服务需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,这些服务只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,这些服务允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
参考文献
- https://blog.csdn.net/fanshujuntuan/article/details/78077433
- http://blog.51cto.com/putian/1287959
- https://blog.csdn.net/maxsky/article/details/51171474
- http://wiki.jikexueyuan.com/project/git-tutorial/remote-repository.html
- http://www.luxinzhi.com/system/140.html
- https://overtrue.me/articles/2015/05/install-latest-git-on-centos.html
- https://blog.csdn.net/zsx157326/article/details/80059068
- https://blog.csdn.net/chenqiai0/article/details/83472410
- https://www.jianshu.com/p/3478e2a214a1