Git 简明可视化教程

尊重原创,请勿转载!  作者:图林根的烤肠,本人不是专业程序从事人员,只是从自己理解的角度阐述,如有纰漏欢迎指出

文章来源: www.mahong.me/archives/20


1

如果您已经对Git有所了解,那么请转看其他文章,这篇只是我作为一个Git新手的心得文章,本篇的目的是为了让更多像我这样想使用Git却刚开始就被各种一大堆代码搞得莫名其妙的爱好者推荐,使其减少一些不必要的资料查询时间。下面正文开始:

想必编程写代码的同学对左边这张图片一定是不陌生的,这是我当初写论文编程的备份文件夹,每一次大的代码变动我都会新建并复制代码,来进行调试内容,虽然这样做简单省事,这样做有个致命的缺点:当修改程序代码过多的时候就会时常忘记自己修改过的地方,这时候想要记起当初更改过的地方就会十分的困难,这只是一个人编写代码的情况,如果是一个团队,每一个人都需要建立不同的版本文件,还有可能会出现文件覆盖的情况,那维护起来将是不可想象的事情。这里插一句题外话,当初多人通宵制作小电影的时候不同人的分工明确不同,我负责音频剪辑,有人制作特效,另外的人在剪辑视频,因为所有人都是在编辑同一个存在服务器里的项目文件,当时我就想到会不会出现文件覆盖的情况,可惜当时忘了问老师,还请高人解答是否这里也应用了Git技术。

为了避免上述问题的发生,就产生了Git。

简要直白的来说,Git是一个文件管理系统,这个系统对于用户指定文件夹内的文件的每一次更改都可以根据需要来进行记录,以便达到还原保存等等的其它目的。它的方便性在于人们不必要每一次去重新建立所有项目文件的副本,而是会记录用户对于文件的操作,每一次的变动记录会生成唯一的一串数字ID标识,可以近似理解成浏览器的历史纪录,然后可以很方便的来使代码等文件变更操作回到『过去』,进而方便了我们对于代码的维护工作.

接下来来说下GitHub,有编程经验的朋友们一定对GitHub不陌生,不要奇怪,我第一次听说关于Git的事情是GitHub而不是Git,要知道Git和GitHub不是指同意概念,借助知乎上的回答,GitHub是一项托管平台,个人理解就是说提供Git服务的一个网站,类似的提供Git服务的网站还有 Bitbucket等。但是对于英语水平不是特别好的人来说,GitHub的代码操作却又是难之又难,从刚开始的设置到后来的操作对于我这个不是专业编程人员来说过于繁琐。有些时候对于一些事物如果时间不允许的话我们只需要会使用就可以了,至于说原理不必要深入理解(我不是说不鼓励探究事物本质,我更赞同去深入了解一些事物,正如当年做实验老师提问似的,4个小时的实验老师提问用了一个半小时,那简直是丧心病狂,就好像他本人什么都不懂事的,搞得后来每次实验都心惊肉跳,生怕有半点不明白的地方)好在有一款可视化免费软件SourceTree,极大的方便了Git的操作,该软件内部集成Git,节省了不少学习时间,软件界面也支持简体中文(windows版本没实验过)

Git的数据库可以分为本地和远程两种版本,这里主要使用GitHub远程数据库的服务,在用户的工作文件夹(Tree)和数据库(Database)中还有一个索引目录(这里姑且称作Index),在Git提交文件变动的时候,会把变动提交到Index中,然后会在根据用户需要指令上传的服务器,例如每次改写代码并不是都需要保存到服务器中,这样做可以有效避免不必要的文件提交。

Tree  <–>  Index  <–> Database (关系A)

明白了大致原理,就可以开始使用Git了,为了使用Git,我们需要首先选择一个『Git服务商』,这里拿GitHub举例,注册帐号之类的之前操作我就省略掉了,因为软件支持中文界面,我就简要介绍下初期的操作

在使用软件之前我们需要先去GitHub上面进行下库(repository)也就是工作文件夹的建立,

1)登录GitHub,选择右下角界面的 绿色 『+ New repository』 按钮,

2

2) 让我们命名为 『HelloWorld 』好了

3

关于是公开代码还是私人代码,看个人需求,私人的话需要额外付费,这里拿公开代码举例。然后下面有个Initialize this repository with a README 的选项,勾选后可以添加一些授权许可协议,例如MIT,和readme等文件。点击绿色的创建按钮进入到下一步

3)请注意红框内的地址连接,如果无法获取地址的话后面会用的到

4

4)直接就可以返回到SourceTree的使用。打开软件后首先使用之前注册号的帐号登录GitHub,注意用户名不是邮件地址!而是注册时候的昵称,然后继续到下一步

5

5)登录的话软件会自动找到刚才在GitHub上建立的『HelloWorld』库,目标文件可以选择保存文件的目录位置,把Github上面的HelloWorld文件夹同步到本地电脑上

6

6)  这时候本地电脑上的HelloWord文件夹还没有新的文件,只有原来Github里面的License和readme文件,这里新建一个文本文档 『test.txt』 ,内容『hello world !』,添加完后返回SourceTree在为缓存文件区域会自动发现刚才对所做文件夹的更改

7

7)未缓存文件就是说我们所做的更改还没有保存到关系A(Tree  <–>  Index  <–> Database )中 的Index里面,如果想要进一步把Index保存话点选步骤(6)中的未缓存文件,test.txt 左边的方框选中后软件会自动保存到本地Index(注1)

8

8)如果想把Index保存到网络上那么接下来点击软件上面的『推送』按钮。

9

9)在接下来弹出的对话框中选中master然后继续

10

这时候如果返回GitHub我们的HelloWorld库中会发现,里面的内容并没有test.txt文件,如果想保存到服务器中的话点击软件左上角的『提交』按钮,选中下面的 “立即推送变更到origin/master” ,然后输入提交信息,比方说『my first test』,点击提交便会上传文件到GitHub,这时候我们在进入GitHub后刷新页面会发现原来的test.txt 已经上传到服务器中,在文件旁边的说明也被自动添加了进去。

11

10)接下来我们来把test.txt 内容更改一些,看看能否做到”回到过去”的功能

对文件test.txt添加一行文字『This is my first Programm』,重复步骤789,输入提交信息This is my first Programm 保存文件到GitHub, 上传完毕后点击软件右边的『远端』,这时候会发现右边列出了不同两个版本的text.txt 文件内容, 这时候再点击旁边的『回滚行』,执行完毕后在去看看本地的text.txt 文件,添加的哪行文本是不是消失了呢?

12

上图的一串编码就是Git生成的一个唯一的独立ID,以供对操作的识别。写到这里想必已经掌握了的最基本的Git操作,只是一些皮毛上的东西,更高阶的内容可以参考其他相关书籍资料来使用。

结语:

我并不是反对在终端中输入代码来进行Git的相关操作,如果时间允许的话个人非常推荐去深入Git的学习,这样可以更好的利用Git带来的便捷性。虽然我认为自己对着黑白的终端界面敲代码是一件很酷的事情,但是如果有更简便的方法我为何不去尝试呢,当初我也因为各种Git教程看的有些不知所云。正如我使用遥控器看电视一样,对于遥控器的原理我可以不必在去深究,因为我关注的重点是电台节目,正如Git对于我来说仅仅是一个方便我对编程的使用工具,核心的内容是程序代码本身,而不必要去对其它事物分心。

最后祝各位 “冬幕节快乐”  ^^

注1: 这里的推送按钮个人理解为是保存到本地,如有错误的话欢迎指正

SourceTree下载地址:mac版     windows版

8月28日补充:

历史遗留问题,当时犯二,今日终于把原来org的网站内容和me合并到了一起,浏览文章这里补充下另一种恢复代码状态的方法:

就是点击SourceTree 软件右上角的 “终端” 按钮进入到指令模式,在弹出的终端中输入命令:

git checkout 1234567

即可返回到之前保存的状态,如图所示,上面代码的 1234567 为保存的历史ID的 前七位,例如下图中标记的 “7441c14” (请忽略我当时的数数错误 ?),然后回车即可返回到当时保存的状态。

屏幕快照 2016-08-28 22.47.09

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部