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. 协方差(Covariance)

    统计学上用方差和标准差来度量数据的离散程度 ,但是方差和标准差是用来描述一维数据的(或者说是多维数据的一个维度),现实生活中我们常常会碰到多维数据,因此人们发明了协方差(covariance),用来度 ...

  2. 如何确定Kafka的分区数、key和consumer线程数

    [原创]如何确定Kafka的分区数.key和consumer线程数   在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一.本文结合Kafka源码试 ...

  3. maven 使用 log4j

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可 ...

  4. python+turtle 笔记

    用Python+turtle绘制佩琪: from turtle import * def nose(x,y):#鼻子 penup()#提起笔 goto(x,y)#定位 pendown()#落笔,开始画 ...

  5. Gaussian Process for Regression

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  6. Jenkins-在windows上安装及其部署

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.其主要功能:1.持续的软件版本发布/测试项目. ...

  7. SEO总结

    学习了这么久了seo,对学过的知识进行一下总结. 服务器和域名 首先的一个就是对服务器和域名的选择,服务器最好能是独立的,因为如果不是独立服务器很容易被别人放在服务器上的网站所影响,然后就是域名,需要 ...

  8. ArcGis恢复初始设置(默认设置、出厂设置)的方法

    警告:下面的操作涉及更改操作系统的重要组成部分.必要时,请咨询计算机系统专业人士. 重命名 ESRI 文件夹即对 ArcGIS 恢复出厂设置,因此必须重新安装当前安装的所有第三方工具.自定义脚本和自定 ...

  9. [物理学与PDEs]第3章习题6 Lagrange 坐标下的一维理想磁流体力学方程组的数学结构

    试讨论 Lagrange 形式下的一维理想磁流体力学方程组 (5. 33)-(5. 39) 的类型. 解答: 由 (5. 33), (5. 39) 知 $$\bex 0=\cfrac{\p p}{\p ...

  10. 关于缓存和 Chrome 的“新版刷新”

    在读本文前你要确保读过我的上篇文章<扼杀 304,Cache-Control: immutable>,因为本文是接着上文写的.上文说到,在现代 Web 上,“条件请求/304 响应”绝大多 ...