好久没有更新博客了,因为去年换了新工作,工作微忙,再加上比较懒,就一直没有写博客。
因为最近新发布了树莓派4,准备入手玩一玩,就配置了Git,准备管理些代码。
因为在这台电脑上是首次配置Git环境,所以写此博客记录下配置过程以及从github上下代码时遇到的问题。
第一步:下载并安装git。
Git是在官网下的,官网的网址是https://git-scm.com/。直接点击右侧的Download 2.22.0 for Windows即可自动开始下载。我这里下载的是2.22.0版本。
下载之后运行安装。安装的过程我只改了一个配置项,就是“Checkout as-is, commit Unix-style line endlings”这项。如下图所示。我的理解这项的意思是checkout时保持代码换行符不变,commit时将代码中的换行符自动转换为unix格式。这是为了跨平台合作编辑的代码准备的,因为unix系统和windows系统中编辑代码保存后的换行符不同。
第二步:打开Git Bash,配置公钥。
为了能够在github下载和提交代码,需要在首先在本地生成密钥,然后将公钥配置到github上。
首先打开git bash,输入命令
ssh-keygen -t rsa -C "youremail"
后面的youremail就是在github上注册的邮箱,注意这里带要引号。这时会提示输入保存的路径、密码等等,都不用管,一路回车就好。之后就会生成一对密钥,默认路径保存在c:/Users/xxx/.ssh/目录中。
之后就到这个目录中找到生成的公钥,将其复制到github中。
具体做法可以先用
cat c:/Users/xxx/.ssh/id_rsa.pub
命令查看公钥的内容,然后将这段内容复制出来,内容是以ssh-rsa开头以你的邮箱结尾。
之后进入github的settings设置,选择SSH and GPG keys一项,点击右侧的New SSH Key按钮,添加新的ssh key。之后把刚才复制的公钥粘贴在key一栏中,上面的title一栏是给这个新添加的ssh key起一个名字,随便起。
添加好之后就完成了密钥的配置。
第三步:测试ssh是否可以连通以及是否成功绑定。
配置好密钥之后,可以使用命令
ssh -T git@github.com
,测试一下是否能够连接ssh以及成功绑定github。出现下图的打印信息说明绑定成功。
第四步:配置git的global username 和 global email。
使用命令
git config --global user.name "yourname"
git config --global user.email "youremail"
配置git的用户名和email。这里的email好像必须和github的一致,这一点我也不是很确定,没试过别的邮箱。
这里有可能打印出一个fatal: not in a git directory这样的错误,这是因为当前目录不是git的工作目录。解决办法是进入到想要下载代码的目录,运行
git init
命令,就可以在当前目录生成一个.git文件夹,当前目录就成为了git的工作目录。
第五步:克隆代码。
前面的四步配置好后就可以开始克隆代码了。
从github上克隆代码有两种方式分别是HHTTPS和SSH,上网查了一下这两种方式的区别如下:
第一种是HTTPS,不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
第二种是SSH,clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
这时如果直接clone代码可能会遇到如下问题,无论我使用两种方式的哪种都克隆不下来,如下图。使用HTTPS的方式会提示我fatal: protocol 'https' is not supported。使用SSH的方式会提示我\302\226git@github.com: Permission denied (publickey)。fatal: Could not read from remote repository.
这个问题也是让我很困惑,后来上网查了一下,是因为git remote的路径没配置。
如果remote路径配置好的话,使用命令
git remote -v
会看到remote的路径。但是我输入这个命令后什么都没打印,我就按照网上的方式重新将remote的路径配置了一下,命令如下:
git remote rm origin
git remote add origin https://github.com/xxx
第二条命令中的路径就是git clone的那个路径。
配置完这个之后就可以顺利克隆代码了。
以上就是git首次配置的过程。在此做以记录。