安装git并连接github
前言
笔者最近装了一台主机(第一台主机😁),装完系统还得搭不少环境,其中最重要的就是git和github,由于前面几台笔记本的安装过程都没记录,加上时间较久,这次安装又是网上搜教程,为了装下一台主机(挖坑)时有所参考,记录下这次安装过程(windows版)。
安装Git
下载git
首先前往git 官网下载 windows版,我这里下载安装的是Git-2.47.0.2-64-bit.exe
安装过程
具体安装过程可参考这篇 文章 ,这位博主已经写的十分详细,每个安装界面的说明都有详细说明 这里放一下我的安装选项
这里需要注意一下:需要先安装notepad++,安装后还要配置在我的电脑->属性->高级系统设置->高级->环境变量->系统变量->Path->编辑添加 Notepad++ 的安装地址,如 C:\Program Files\notepad++.
配置Git
如果像我一样将git添加到wt(windows terminal),那么可以直接在wt中打开git bash,否则可以在桌面右键选择open git bash here
配置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密钥。
测试连接
ssh -T git@github.com
,如果是第一次,需要输入yes
确认对方的公钥合法性。
出现下面结果即代表连接成功。
至此,就可以使用ssh clone 咱们的私有仓库了。
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,但执行过程报了错误:
总的来说是权限问题,排查了下,是由于在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