今天上的第一节软构课就要求我们学习使用Git,未来的三个实验全部通过Git提交。晚上下课后就回去搞了搞,比我想象的复杂,骂了Git一整个晚上。之前偶尔用过Github,都是通过网页上传附件的形式上传到仓库,这次整这个git属实给我整迷糊了。

Git被普遍称为功能强大的版本管理工具,强不强大暂时感受不出来,但是用起来真tm的麻烦。安装好后和远程仓库关联起来就废了半天劲。网上的教程大多是远程公开仓库关联本地仓库,奈何我们的实验仓库都是private的,关联需要密钥认证,根据为数不多的教程一步一步照着弄才勉强关联好。

首先本地创建一个本地仓库,在想要创建的文件夹下打开git bash输入

git init

这样本地会多出一个.git隐藏文件夹,作为仓库管理文件。然后在bash创建输入以下命令配置身份

git config --global user.name "username"  
	git config --global user.email "email"

之后生成rsa密钥作为和git交互的凭证

ssh-keygen -t rsa -C "email"

然后在C盘用户文件夹.ssh文件夹下找到两个rsa文件,分别是秘钥和公钥。我们需要把公钥.pub交给github。具体就是打开github的设置添加一个SSHkey,把公钥内容复制进去。

然后在bush输入以下命令测试连接,连接成功就可以了。

ssh -T git@github.com

至此把github和本地认证好后,我推荐用Git gui来执行以后的push操作,毕竟图形界面适合初学者。在图形界面中根据remote->add->branch…等等选项自己可以摸索出来和远程仓库建立连接,无非就是复制以下ssh设定一下分支名。然后就可以push上传。

当然这只是个开始,push的过程中我还经历了各种各样的错误,大多与git分支管理方式有关,git分支的管理属实有点复杂。如果push上传了一个文件,在本地又删除,之后再次上传会出现错误告诉你本地仓库滞后于远程仓库的更新balabala,死活不让上传。这时候开bash用-force选项强制上传即可。不知道把一个上传搞这么严格有什么用,也许以后能慢慢发现好处吧。