git学习之通俗易懂篇(一)
看了廖学峰老师的教程,并加上自己的理解,我总结了属于自己的通俗易懂版本,在此记录下来。
首先,了解git和github。
在此之前,可能有人也和我一样,听说过git,也听说过github,并且有自己的账号,但两者是一回事吗?或有啥区别,有啥联系?
(ps:不知道大家会不会和我有一样的状况,要是脑子里一开始有一些不是非常清晰的概念,此刻想要深入去学习的时候就无法专心,也能理解为脑子就没有充足的空间去关注当下需要理解或学习的东西上,因为那些不是很清晰的概念占据着一些不必要的空间。)
所以,先来理清一下思路又再说。
Git是一款免费、开源的分布式版本控制系统。
Github是用Git做版本控制的代码托管平台。也就表示这样的代码托管平台可以有很多个,git和github不是一一对应关系。比如,听说过的还有“码云”,等等。
Git是分布式版本控制系统,就是将同一个Git仓库,分布到不同的电脑上。这样工作时就必须找一台电脑充当服务器仓库的角色,每天24小时开机,其他每个人都从这个服务器仓库中拉取别人的提交,并且各自把各自的提交推送到这个服务器仓库里。但这是很不方便的,如果有个远程的免费的仓库可以使用才是最好的。
GitHub就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。也就是有了这个远程仓库之后,一起合作的小伙伴拉取或是提交都是面对这个远程仓库就可以了。
至于怎样完成所有步骤,接下来会通俗易懂介绍的。
什么是git?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
什么契机下,产生的版本控制系统:
如果几个同事一起合作编辑一个文件,如果全靠人工的话,就需要保留每个时期,每个人的版本,以便之后查看,修改。还得整理出包含每个改动的最终版,这个最终版只要有人改动,就得找到那个改动的地方,然后更新。总之,整个过程是非常耗费时间和人力的。
由此需要,产生了版本管理系统,它可以自动帮我们记录每次文件的改动,还可以让同事协作编辑,也不用自己管理一堆类似的文件,也不需要把文件传来传去。
知道了版本控制系统,那什么是分布式呢?
与分布式对应的是集中式。
集中式就是将整个文件统一放在特定服务器上,工作的时候先要从这个服务器上获取到最新版本,然后再进行自己的编辑修改,完了再提交到此服务器上。所以如果没有网络,就没法工作了。
分布式是每个人电脑上都有完整版本,没有网络也可以工作,可以同事之间交换修改部分,也可以统一设立中央服务器,然后得到每个人修改的记录。
先简单这样有个概念,之后再自己实验。
怎样使用git?
1、要先安装git,再这里有详细的各个操作系统下的安装步骤。
2、装好之后,我们要理解到,git管理的单位或是范围称为“仓库”,其实也就是某个你想管理的文件夹(目录)。
(ps:你可以建立多个仓库,有些是本地自己用git管理,有些是托管在github或码云或别的远程平台上。)
下面就举个我在本地用git管理文件的例子:(别急,下一篇,会再举远程的例子)
【注:我的是win10系统。而且我已经装好git了。】
先说个题外话:我对命令行的理解(随时保留改正空间~~)。
我是这样理解的(如果不对的话,欢迎提出你的想法,向你学习):命令行是与图形界面操作一个意思,就比如图形界面上鼠标右键选择新建文件,那这个操作在命令行就可以用某个命令去完成。
命令行在不同操作系统上会有不同的命令行工具,例如windows上是cmd,Linux下是shell。
而如果下了一个软件,里面的操作是用命令行操作的话,它也会提供命令行工具,就比如下了git,它提供了git bash,在里面写命令来操作。(这个软件是基于哪个操作系统开发的,则它提供的命令行工具,也会延续该操作系统的命令,所以git bash也就当作Linux环境下的命令行工具。)
(1)在合适的位置创建空的目录,作为版本库。
这个目录(版本库)里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
使用e:就不能进入e盘了,因为e:是windows下的命令。
我在e盘下新建了gitproject,然后又在其下新建了localfile文件,准备将localfile作为本次实验的git仓库。
(2)在当前目录下,通过【git init】
命令把这个目录变成Git可以管理的仓库:
执行git init命令之后,从“我的电脑”打开localfile,则会看到localfile目录下有个.git目录,这个目录就是Git用来跟踪管理版本库的。
(3)然后在localfile下新建文件test.txt,并写些内容进去。
例如在文件中写如下文字:
(4)用命令【git add】
告诉Git,把文件添加到仓库:
没有任何反应,说明执行成功。
(5)用命令【git commit】
告诉Git,把文件提交到仓库:
注:git commit -m之后双引号中是本次修改的描述,可以写你觉得可以描述本次行为的任何有意义的内容,以便之后查阅。
你可以多次执行git add命令,之后再使用git commit一次进行提交。
当你用git add
命令后,相当于将一次修改放入暂存区,准备提交,所以可以将多次修改放入缓存区之后,一次提交。
(6)当我们再次修改了test.txt文件之后,再执行【git status】
命令,可以得到如下结果:
它会告诉你仓库当前的状况:test.txt被修改了,但是还没有放入缓存,也还没提交。
(7)用【git diff】
这个命令,可以查看我们具体做了什么修改:
我当下的test.txt内容为:
(8)接着执行git add,再执行git status:
它会告诉我们当前仓库的状况是:将要被提交的文件是test.txt。
(9)然后执行git commit -m "第二次修改",再执行git status:
它告诉我们当前仓库的状况是:没有需要提交的内容。
(10)使用【git log】命令查看所有历史记录:
我用蓝色圈出来的部分就是我们每次提交时候写在 -m 之后的描述,可以简单清晰了解每次大概改动的地方。
好的,以上就是经常会使用到的命令,总结一下:(如果想要了解其他命令,可以仔细阅读廖学峰老师的教程)
git init 将当前目录变成git仓库
git add 将修改文件放入缓存区
git commit -m "描述文字" 将缓存区中文件提交
git status 查看当前仓库的情况
git diff 查看具体修改内容
git log 查看历史记录
下一篇会总结托管在github上的例子~~
转载于:https://www.cnblogs.com/zhaoyingzhen/p/8950080.html
git学习之通俗易懂篇(一)相关推荐
- Git 学习看这篇就够了!
2019独角兽企业重金招聘Python工程师标准>>> Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和gi ...
- Git学习笔记(4)----基本操作及命令(本地仓库篇)
本篇介绍Git的基本操作及命令,学习后本篇需要达到的效果:满足日常工作使用,对每个命令及其作用有一定的了解.文章通过模拟工作流程的方式,帮助读者更好的理解每个命令的使用场景和作用,但不会单独列出每个命 ...
- 【笔记】【git】【狂神说Java】Git最新教程通俗易懂 -学习笔记
前言 学习视频:[狂神说Java]Git最新教程通俗易懂 感谢狂神!!! 此笔记用于记录本人在学习中还有不懂以及值得注意的地方.以方便日后的工作与学习. 笔记中有些个人理解后整理的笔记,可能有所偏差, ...
- Git最新教程通俗易懂----狂神说Java -- ---学习笔记
[狂神说Java]Git最新教程通俗易懂 https://www.bilibili.com/video/BV1FE411P7B3 P1.前言之版本控制 06:12 P2.Git和SVN的区别 07:3 ...
- Mac~git学习和应用需要注意的几个点
Git学习推荐网站:廖雪峰-Git教程 - 廖雪峰的官方网站,通俗易懂,简单粗暴,就是平俗的语言,好懂.粗暴的那种 git学习进阶-国外经典git学习网站:Git - Book 目录 1. 全局配置和 ...
- 分布式版本控制系统Git学习资源收集汇总
伴随着知乎上一个问题:GitHub 是怎么火起来的?被顶起200+的回答说到:Github不是突然火起来的,在Ruby社区Github其实从一开始就很流行,我们2009年搞Ruby大会就邀请了Gith ...
- git学习------gt;写给 Git 初学者的7个建议
PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-develo ...
- Git学习资源收集汇总
伴随着知乎上一个问题:GitHub 是怎么火起来的?被顶起200+的回答说到:Github不是突然火起来的,在Ruby社区Github其实从一开始就很流行,我们2009年搞Ruby大会就邀请了Gith ...
- (一)Git学习记录(不断更新)
作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...
最新文章
- Flask Sessions会话
- 本地储存数据_你的爬虫数据储存在哪?MongoDB入门篇
- Linux 后台开发运维人员常用的Linux命令汇总
- 错误: 找不到或无法加载主类 helloworld_你还不知道Java的类加载机制?
- C#从新浪新闻上提取新闻标题
- 语音情感识别研究进展综述
- 怎么用java做todolist_[Java教程]JavaScript jQuery 任务清单 ToDoList
- 专业五线谱作曲打谱软件Overture的常用快捷键功能大全
- tomcat 启动报错 解决办法 A child container failed duringnbsp
- 2022: Python下载安装教程
- python机器人编程教材_python人工智能机器人工具书籍: Learn Robotics Programming(python and Raspberry Pi 3) - 2018...
- raid服务器怎么装win7系统安装,win7系统安装raid的方法(图文)
- 个人外汇买卖能不能一直等到赢利再平仓
- 如何系统地学习网络安全
- 2019新征程 | SMIA新一批会员公示
- oracle+获取最后一行数据库,获取表最后一条数据
- mac重装系统 未能与恢复服务器,Mac系统重装后数据可不可以恢复
- 超出三行部分用省略号显示_如何用三行数学建立神经网络
- Linux学习(Kali为蓝本)
- 幻14 ubuntu20.04 AX210驱动安装