Git是世界上目前最先进的分布式版本控制系统。

工作原理图:

Workspace工作区,Index暂存区,Repository本地仓库区,Remote远程仓库。

SVN与Git的最主要的区别?

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git基本指令:

1.创建版本库

(1)找路径:找到你想创建版本库的文件夹下;右键出现Git.bash here(前提是安装好了Git)

        或者cd f:->    cd 文件夹名字

(2)把当前目录升级成git的管理仓库:指令 git init    之后会在当前文件夹下出现名 .git 隐藏文件夹。

(3)git status指令 查看当前文件夹下有没有文件/文件夹未提交的:

     上半部分的红色字体modified:....为已经添加到版本库的,修改后未提交的文件。(在这说一下,不是一创建版本库 git init 就把当前文件夹下所有文件放进库里的,而是需要手动添加。)

     下半部分红色Untracken files:......就是当前文件夹没有添加到版本控制库里的文件;

(4)git add  test.txt 指令,就是把文件或者文件夹添加到版本控制库里。

       我们可以创建一个testgit文本文件试验一下,文本内容为111111;

(5)git commit 指令通知git,已经把文件提交到仓库了。

      

        再用git status查看当前状态 ,可以看到没有testgit文件,因为我们已经add了testgit并且commit提交了。而另外两个文件依然为modified,因为我们一直没有add他们两个,所以就像放着把。

       然后我们尝试修改testgit.txt文件,添加一行222222,再git status查询一下

发先现estgit成了modified:,因为我们修改了还没提交。

(6)git diff testgit.txt 指令查看文件遇上一个提交版本又哪里不同。

可以看到出现了红色和绿色两个部分,红色为之前已提交的内容,绿色为当前修改后 未提交的内容。   之后我们就可以继续更新版本库了(git add   +  git commit)

(7)版本回退git reset -- hard HEAD^:当前testgit.txt已经更改两次,我们可以用  git log  指令查看每次提交的内容(也就是commit的日志)

      ps:git log是一个功能很强大的指令,这里使用的是git log -- 文件名,限定显示此文件的提交日志,如果不对git log指令做任何修饰,那么他将会显示所有的日志信息。让你的版本库修改过很多次有很多文件时,那么多信息简直爆炸。(推荐看一下这个指令的全解析)

git log显示的顺序时从近到远,我们要回退到上个版本的话就要使用  git reset -- hard HEAD^       。(如果要回退前N个版本就可以用指令git reset --hard HEAD~N)

会退后,通过命令cat readme.txt查看当前内容发现真的变回去了。

   ***我们也可以根据版本号来回退, git reflog -- testgit.txt(与git log差不多的用法)

     34946b4就是版本号,然后就可以用指令git reset --hard 版本号

(8)撤销修改指令 git checkout -- 文件名

    应用情景:再未提交前,想要恢复到以前的版本。

方法一:手动修改然后add+commit;方法二:回到上一个版本git reset --hard HEAD^

       方法三:git checkout -- testgit.txt   (意思是把testgit.txt文件在工作区做的修改全部撤销,回到add时的状态。)

(9)删除文件指令  rm testgit.txt

    删除也可以手动右键删除,删除后有两个选择:1.commit提交状态,彻底删除;2.从版本库中恢复文件,也是用git checkout -- testgit.txt 指令


待完善。。

    

      

Git基本操作指令的更多相关文章

  1. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  2. 实践中的Git常用指令分析

    从工作开始,一直都在使用为知笔记(作为程序员需要知道的内容很多---不需要很深入理解,一段时不使用的东西可能就会忘记).但本周一同步不同PC端时,了解到为知会在2017/1/1开始收费! 既然收费了, ...

  3. 【docker 一】入门实践、环境部署、基本操作指令、镜像库、数据卷

    简述 `docker是如火如荼的容器技术,今后会陆续上传关于微服务技术的学习笔记,希望能和大家一起学习一起分享!` docker环境搭建 1.获取最新版的Docker安装包 $ wget -qO- h ...

  4. Git基本操作和GtHub 特殊技巧

    <GitHub 入门与实践> 笔记 了解GitHub Git 和 GitHub 的区别 在Git中,开发者将源代码存入名为"Git仓库"的资料库中,并加以使用.而Git ...

  5. Git学习系列之Git基本操作拉取项目(图文详解)

    前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...

  6. Git学习系列之Git基本操作推送项目(图文详解)

    前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...

  7. Git学习系列之Git基本操作提交项目(图文详解)

    前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...

  8. Git学习系列之Git基本操作克隆项目(图文详解)

    不多说,直接上干货! 想必,能进来看我写的这篇博文的朋友,肯定是了解过. 比如SVN的操作吧,最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commi ...

  9. git常用指令整理

    git常用指令一览表 GIT指令 说明 git add . 将全部文件的内容加到Git索引以便执行commit. 这个指令不会检查文件夹中是否有文件被删除. 要注意的是,只有执行" git ...

随机推荐

  1. P3389 【模板】高斯消元法

    高斯消元求解n元一次线性方程组的板子题: 先举个栗子: • 2x + y -   z =  8-----------① •-3x - y + 2z = -11---------② •-2x + y + ...

  2. P4783 【模板】矩阵求逆

    原题链接 https://www.luogu.org/problemnew/show/P4783 一道模板题,更重要的省选难度..... 题目要求的是一个n*n的逆矩阵,还要对大数取膜. 普通高中生: ...

  3. poj 3764 The xor-longest Path (01 Trie)

    链接:http://poj.org/problem?id=3764 题面: The xor-longest Path Time Limit: 2000MS   Memory Limit: 65536K ...

  4. 用beam实现连接kafka和elasticSearch示例 在flink平台运行

    示例实现beam用java编程,监听kafka的testmsg主题,然后将收取到的单词,按5秒做一次统计.结果输出到outputmessage 的kafka主题,同时同步到elasticSearch. ...

  5. Dubbo2.6.5入门——管控台的安装

    首先去下载管控台:GitHub 然后解压到本地,截止到目前2019-01-18,最新管控台基于Dubbo2.7.0-SNAPSHOT版本,但是2.7.0还没有正式发布,不过影响不大. Dubbo Op ...

  6. Go语言系列(八)- Goroute和Channel

    一.Goroute 1. 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配合调度的一个独立单位 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能 ...

  7. zabbix Server 4.0 部署及之内置item使用案例

    zabbix Server 4.0 部署及之内置item使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix组件架构概述(图片摘自网络) 1>.zabbi ...

  8. Docker:dockerfile自动构建镜像 [六]

    一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...

  9. HTML(一)HTML基础语法(HTML简介,HTML文档声明)

    HTML 概念介绍 [概念] (Hyper Text Markup Language)超文本标记语言,是用来描述网页的一种语言 超文本(Hyper Text):不只包括文本,也可以包括图片.链接.音乐 ...

  10. HTML(三)HTML属性

    HTML 属性 属性: [class] 规定元素的一个或多个类 注意: 类不能以数字开头 class = "classA classB" // 多个类的写法 [id] 规定元素的唯 ...