之前所有git操作都是在Eclipse上完成的,简单快捷。不过最近打算写一写算法的题目想上传到GitHub,也不打算使用Java,所以不得不直接使用Git工具进行操作。这算是补一篇文章吧,直接使用Git工具毕竟对理解整套系统是有好处的,特别是考虑到以后要有branch分支等等。
建立仓库就先不用命令行操作了,直接右键可以打开GUI。首先定位到相应的路径创建仓库:
![97c1ee4dd57d9e6696b07401871ee9d0.png](https://img-blog.csdnimg.cn/img_convert/97c1ee4dd57d9e6696b07401871ee9d0.png)
再创建完成后可以显示一下隐藏文件,可以看到多了一个.git,就是创好的本地仓库了。在Git工具的界面已经将所有没有放入仓库或者发生变动的文件列出来了,但问题是这里中文乱码了,不过还是先尝试一下正常操作吧。
![10f1ccdf69d6f84aaa2e05e043b2c6df.png](https://img-blog.csdnimg.cn/img_convert/10f1ccdf69d6f84aaa2e05e043b2c6df.png)
点击Stage Changed可以将所有文件加入到绿色那一栏Staged Changes中,再输入一些说明信息就可以准备提交:
![a695ebf09880c6bf1ae3676bb9769a53.png](https://img-blog.csdnimg.cn/img_convert/a695ebf09880c6bf1ae3676bb9769a53.png)
然而点击commit后只是提交到了本地仓库,我还希望搞到远程的GitHub仓库上,这个时候就要用到Push了。在这之前,先看一下我新建的仓库吧:
![e11432ca6ce9911077710f5addd0edf9.png](https://img-blog.csdnimg.cn/img_convert/e11432ca6ce9911077710f5addd0edf9.png)
将SSH复制到点push弹出的界面中,然后基本上就是傻瓜操作:
![5f6228731a9ec18ab846cfdc9b0dfd77.png](https://img-blog.csdnimg.cn/img_convert/5f6228731a9ec18ab846cfdc9b0dfd77.png)
在一阵等待之后,弹出了GitHub的登录界面:
![103937632ee3c79128d18082d04e8066.png](https://img-blog.csdnimg.cn/img_convert/103937632ee3c79128d18082d04e8066.png)
有趣的是,在中途等待时又要求输入一遍用户名和密码:
![c3c377bc038175392a582685c23a4893.png](https://img-blog.csdnimg.cn/img_convert/c3c377bc038175392a582685c23a4893.png)
![69b5e44bd25a905f6e6d2be7ac1921a8.png](https://img-blog.csdnimg.cn/img_convert/69b5e44bd25a905f6e6d2be7ac1921a8.png)
最后终于显示提交成功了,尽管中间还是有一段乱码:
![65392ee1bea2b80f525d29139e808fc6.png](https://img-blog.csdnimg.cn/img_convert/65392ee1bea2b80f525d29139e808fc6.png)
在远程的GitHub仓库查看一下,提交上来的文件并没有出现中文乱码问题:
![bc97f61f92d7ad734de475722ee5491c.png](https://img-blog.csdnimg.cn/img_convert/bc97f61f92d7ad734de475722ee5491c.png)
如果只是用GUI感觉有点太低级了……下面试试bash吧。我先对我的目录做了一些改动,新建了一个文件夹和文件做了一些路径上的变化:
![a10431086297249e901a608edb1cc381.png](https://img-blog.csdnimg.cn/img_convert/a10431086297249e901a608edb1cc381.png)
首先要提交到本地的仓库,命令行操作是这样的:
![e516d124af75b66c80fec8c00bbef697.png](https://img-blog.csdnimg.cn/img_convert/e516d124af75b66c80fec8c00bbef697.png)
add命令的意思是先把“第一课”这个文件夹和其中的所有文件放到准备进行提交的缓冲区,就相当于GUI中的Staged Changes。而commit则对应着GUI中的commit按钮,后面-m + 文字就是对这个提交进行的描述。如果仅仅是使用add和commit命令,只能将文件添加到本地的仓库,如果需要提交到远程的仓库需要如下操作:
![dd97423ad2989a5356a6374e080c334f.png](https://img-blog.csdnimg.cn/img_convert/dd97423ad2989a5356a6374e080c334f.png)
第一步remote add命令相当于就是发到了一个远程的缓冲区。后面的origin行相当于是给远程仓库起了个名字吧,不过指的并不是GitHub仓库的名字。后面的push就相当于到本地的commit。这两个命令组合会将本地仓库中的变动更新到远程仓库。可以看到GitHub上的仓库确实被修改了:
![25900a74e5e0030e096cf06647f905d6.png](https://img-blog.csdnimg.cn/img_convert/25900a74e5e0030e096cf06647f905d6.png)
关于分支等操作等后面使用到的时候再补充,先写到这里。