前言
在刚刚了解Git时,怀着一颗浮躁的心,需要使用时,赶紧去查一下他的指令.用完之后就把他丢在一边.从来没有静下心来好好去了解这样一个程序猿们的必备工具. 所以尽管用了多次,但在我狭隘的视野中却认为他只是一个代替U盘存储在云端,可以向世人炫耀的代码仓库.胜者先胜而后求战,败者先战而后求胜.下层基础决定上层建筑要,想用好像这样一个工具,只有先去了解他的功能,再去一步步学习,实践从而掌握它.所以特地些这样一篇文章来让还不太了解git的小伙伴快速入门Git分布式版本控制系统.
什么是git?
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。好吧,什么是分布式版本控制系统?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:
过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。
看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。 更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。
于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便? 这个软件用起来就应该像这个样子,能记录每次文件的改动:
版本 | 用户 | 说明 | 时间 |
---|---|---|---|
1 | richard | 改了一个错别字? | 2017/10/22 20:31 |
2 | 凉风羽 | 插入一段心理描写 | 2017/9/15 13:00 |
3 | jungkkki | 审核了一下格式 | 2017/9/1 9:00 |
4 | sandra | 模板页创建 | 2017/8/30 9:00 |
git和github之间有什么关系?
刚入门的时候,git和github总是傻傻分不清,总以为有什么千丝万缕的不正当关系.相信很多刚入门的小伙伴也会有同样的疑惑.所以在此我要解开它们之间的羁绊. git是一个版本控制工具
github是全球最大的同性交友平台(纯属TX...Github是用Git做版本控制代码托管平台,就好像魔兽争霸于对战平台之间的关系)
Git工作原理图
我们从右往左说起,从本地到程说起:
- workspce 本地工作区
执行git add [file1] [file2] [file3]
添加工作区内的置顶文件到index暂存区
执行git add .
添加所有文件到暂存区.此功在暂存区内存储当前版本,以前后期无线Ctrl Z撤回到需要的理想状态.当一部分代码块结束时,可以先将其暂存,了却后顾之忧.
执行git pull
将remote远程仓库的数据拉到当前分支合并
执行git checkout [branch-name]
切换当前分支. - index 暂存区
执行git commit -m '提交说明'
将暂存区的改动提交到当前分支的仓库区 - repository 仓库区
版本库或者是仓库 ,其实啊说白了就是一个目录而且,这个目录中的所以文件都被git管理而且,不管你做什么操作都会被记录,包括:增加、删除、修改文件等,都会被记录下来,以便后来跟踪与修改相关记录,甚至被还原。
执行git push origin master
将仓库区的改动提交到remote 远程仓库
执行git clone
- remote 远程仓库
常见的远程仓库(同性交友平台)有github,码云等.
以上用几个常用指令配合图示建议描述命令和仓库之间的关系原理
git 模块示意
模块名 | 示意 |
---|---|
respository(版本库) | 一个仓库包括了所有的版本信息、所有的分支和标记信息。在Git中仓库的每份拷贝都是完整的。仓库让你可以从中取得你的工作副本。 |
branch(分支) | 一个分支意味着一个独立的、拥有自己历史信息的代码线(code line)。你可以从已有的代码中生成一个新的分支,这个分支与剩余的分支完全独立。默认的分支往往是叫master。用户可以选择一个分支,选择一个分支执行命令git checkout branch |
标记(Tags) | 一个标记指的是某个分支某个特定时间点的状态。通过标记,可以很方便的切换到标记时的状态。 |
提交(Commit) | commit之后,版本库会创建一个新的版本。后续可以重新获得这个版本. |
结言
今天就先写到这里,希望能让没有接触过Git的朋友能对这个很棒的版本管理工具有一个初步的认识。纸上得来终觉浅,绝知此事要躬行。这篇文章并没有实战演示,而是让大家有一个初步的认识。下篇文章将会是实例演示,由创建版本库开始带大家一起做上Git时光穿梭,希望能够对大家有所帮助。
感谢掘金这个平台,充分展示了互联网的共享精神。巩固自己知识的同时又能将之共享,阅读完本篇文章后认为有所帮助的希望可以随手关注一下,给作者能量能握紧手中的笔。有需要改进的地方也请大家指出,和大家一起共同进步.
git指令终究是熟能生巧,送大家Git葵花宝典图谱
参考
喜欢的朋友可以关注,下篇文章将会是实例演示,由创建版本库开始带大家一起做上Git时光穿梭。