安装git并连接github

前言

笔者最近装了一台主机(第一台主机😁),装完系统还得搭不少环境,其中最重要的就是git和github,由于前面几台笔记本的安装过程都没记录,加上时间较久,这次安装又是网上搜教程,为了装下一台主机(挖坑)时有所参考,记录下这次安装过程(windows版)。

安装Git

下载git

首先前往git 官网下载 windows版,我这里下载安装的是Git-2.47.0.2-64-bit.exe image.png

安装过程

具体安装过程可参考这篇 文章 ,这位博主已经写的十分详细,每个安装界面的说明都有详细说明 这里放一下我的安装选项 image.png

image.png

这里需要注意一下:需要先安装notepad++,安装后还要配置在我的电脑->属性->高级系统设置->高级->环境变量->系统变量->Path->编辑添加 Notepad++ 的安装地址,如 C:\Program Files\notepad++.

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

配置Git

如果像我一样将git添加到wt(windows terminal),那么可以直接在wt中打开git bash,否则可以在桌面右键选择open git bash here image.png

配置git用户

git config --global user.name "github上注册的用户名" # 配置用户名
git config --global user.email "github上注册的邮箱" # 配置用户邮箱
git config --global user.name # 查看配置的用户名
git config --global user.email # 查看配置的用户邮箱

添加ssh密钥

ssh-keygen -t rsa -C "GitHub上注册时的邮箱" 然后默认回车就行,rsa文件存储在C:\Users\你的用户名\.ssh目录下,打开该目录,找到id_rsa.pub,双击打开(记事本即可),复制这串公钥。

连接到github

进入Github,点击左边的头像进入设置页面。

选择SSH与GPG密钥配置页面,建立新SSH密钥。 image.png

image.png

测试连接

ssh -T git@github.com,如果是第一次,需要输入yes确认对方的公钥合法性。 出现下面结果即代表连接成功。 image.png

至此,就可以使用ssh clone 咱们的私有仓库了。

image.png

git代理

由于某些原因,有时候github难以访问,那么这时候需要给git设置一下代理。 git分为http和ssh两种代理,分别对应上图中的https和ssh。

首先是http&https代理 修改~/.gitconfig文件,wt里notepad ~/.gitconfig 添加如下信息:

# xxxx:xxxx改为代理服务器ip和端口号
[http]
	proxy = http://xxxx:xxxx

# xxxx:xxxx改为代理服务器ip和端口号
[https]
	proxy = https://xxxx:xxxx

接着是ssh代理 修改~/.ssh/config文件,wt里notepad ~/.ssh/config 注意IdentityFile行的路径,根据个人rsa密钥的存放路径进行修改。 最后一行的ProxyCommand后的路径,这个根据个人git的安装路径进行修改。

Host github.com
	User git
	Port 443
	Hostname ssh.github.com
	IdentityFile "C:\Users\用户名\.ssh\id_rsa"
	TCPKeepAlive yes
	ProxyCommand "Git的安装根目录\mingw64\bin\connect.exe" -S 127.0.0.1:7890 -a none %h %p

Host ssh.github.com
	User git
	Port 443
	Hostname ssh.github.com
	IdentityFile "C:\Users\用户名\.ssh\id_rsa"
	TCPKeepAlive yes
	ProxyCommand "Git的安装根目录\mingw64\bin\connect.exe" -S 127.0.0.1:7890 -a none %h %p

修改完后,使用ssh -T git@github.com测试下,然后clone一个仓库,看看代理软件中有无连接、流量记录。 取消代理,在这两个文件中将上述信息注释掉即可,或者网上有写脚本一键开启或关闭,笔者常年需要开启,因此无关代理需求,这里有需要的可以自行google。

git pull 报错

git clone后,为了方便后续更新,写了一个shell自动pull、commit和push,但执行过程报了错误:

481463542ab27d9effc65e40afddb44.png

总的来说是权限问题,排查了下,是由于在clone时wt是使用了管理员权限打开的,而执行shell时,默认是普通用户权限,因此导致git pull失败。

解决方法:重新用普通用户clone,执行shell则无该问题。

参考文章

https://blog.csdn.net/mukes/article/details/115693833

https://blog.csdn.net/EliasChang/article/details/136561863

https://ericclose.github.io/git-proxy-config.html

https://blog.csdn.net/HD243608836/article/details/127869482

https://gist.github.com/chenshengzhi/07e5177b1d97587d5ca0acc0487ad677