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. GitHub最基本使用总结

    GitHub最基本使用入门 入门必看博客:https://mp.weixin.qq.com/s/LbzSwl4dYwrSPze0w10l8w 一.Git Linux安装 Git Linux安装教程:h ...

  2. [python]获取当前路径用来构造相对路径的几种方法

    print('getcwd', os.getcwd()) print('sysargv', sys.argv) print('realpath', os.path.realpath(sys.argv[ ...

  3. 关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由

    注.可能因为系统和软件的缘故无法实现 背景 由于在听课过程过于自闭,于是想自己去网上搜点东西看下 于是 经过了一番乱搞 逐渐摸索出了现方法. 方案1: 大力出奇迹 由于电脑在刚刚进入的状态的时候有段时 ...

  4. 一文入门NodeJS

      NodeJS¶ 1.环境配置¶ 之前讲ES6的时候有提过一部分Node的知识,简单回顾下:一文读懂ES6 1.1.NPM国内镜像¶ npm国内镜像:https://npm.taobao.org 配 ...

  5. bzoj5028小Z的加油店(线段树+差分)

    题意:维护支持以下两种操作的序列:1 l r询问a[l...r]的gcd,2 l r x把a[l...r]全部+x 题解:一道经典题.根据gcd(a,b)=gcd(a-b,b)以及区间加可知,这题可以 ...

  6. (二叉树 DFS 递归) leetcode 112. Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  7. qt: 系统默认程序打开文件或者软件;

    Qt提供了QDesktopServices类, 可以利用openUrl函数调用默认程序打开文件: 源码参考: #ifdef Q_OS_WIN32 m_szHelpDoc = QString(" ...

  8. 映像文件工具srec

    目录 映像文件工具srec 介绍与帮助 常用例子 常用选项 一个实际的例子 hex转bin 数据填充 文件合并 文件分割 加入CRC 查看信息 使用命令集合的文本 详细文件格式的描述 附录:MDK的例 ...

  9. ASP.NET WebApi 自带Json返回日期带T无法格式化的问题

    WebApi自带json序列化对遇到时间日期字段的时候,到前端获取的格式总是为“ 2016-07-14T15:32:44”,中间总是会带一个T,显然不是很友好.先是偷懒在园子里边去找一些解决方案,尝试 ...

  10. [物理学与PDEs]第4章第3节 一维反应流体力学方程组 3.2 一维反应流体力学方程组的 Lagrange 形式

    1.  一维粘性热传导反应流体力学方程组的 Lagrange 形式 $$\beex \bea \cfrac{\p \tau}{\p t'}-\cfrac{\p u}{\p m}&=0,\\ \ ...