一、创建仓库

  创建一个目录

  mkdir repository

  cd到该目录下,初始化该版本库

  git init

  至此,版本库创建成功,可以在该文件夹下看到.git文件夹,ls -ah可以看到该文件夹。

二、版本管理

  1.将文件或文件夹添加到版本库中进行版本控制

  在工作区创建一个文件

touch readme.txt

  将该文件添加到暂存区

git add readme.txt

  将文件从暂存区提交到版本库

git commit -m "some comment"

  *工作区、暂存区、版本库

  工作区,就是你本机版本库所在文件夹,你似乎认为这就该是版本库,但实际上版本库中具体有什么是保存在.git文件夹下的,也就是说版本库所在文件夹下的内容,必须是在.git中注册了,才是版本库中的内容。否则只是工作区或暂存区的内容。

  我们来看下版本库中有什么

  重要的目录包含结构如下

工作区:你当前进行版本控制到目录。
|——版本库:“工作区”中有一个.git文件夹,就是git版本库。
|——暂存区:在“版本库”中有一个stage或者叫index的文件夹
|——HEAD指向master的指针
|——refs
|——heads
|——master

  如上所示,.git文件夹可以就认为是版本库;index文件夹是“暂存区”;HEAD文件是当前用户指向分支的指针;refs/heads/master存放主版本分支内容

    对HEAD的理解:每个用户有一个HEAD,指向当前分支的commit节点。

  2.查看工作区和暂存区、版本库所做的改动

  git status

   

   3.查看具体有什么变化

  git diff

  

  4.查看版本库所有历史提交信息

  git log

  这样能够看到每次提交的具体信息及id

  简化输出

  git reflog

  加参数--pretty=oneline

git log --pretty=oneline

  5.回退、前进到某个版本

git reset --hard 版本号 

  前进:HEAD,向前走一个版本

     HEAD^,向前走两个版本

     HEAD~n,向前走n个版本

三、撤销操作

0.添加新文件到暂存区,如果想将其撤销下来

    git add filename
    此时使用git rm --cached readme.txt将文件从暂存区撤出
1.撤销工作区中的修改
    首先保证把该文件添加到了git版本控制中,否则无法撤销工作区中的修改,撤销无非是把文件恢复到暂存区中的内容,或把文件恢复到版本库中的内容
    git checkout -- readme.txt
2.撤销提交到暂存区中的修改
    git reset HEAD filename
3.撤销commit的修改
    已经提交到了本地版本库中,此时还没有提交到远程版本库中
    调用“回退到某个版本”中的方法git reset --hard e70c5e98222a2

四、删除版本库中文件

删除版本库中的文件
    git rm filename
git commit filename
误删除版本库中的文件
    git reset --hard commitid 
误删除本地文件
    git checkout -- filename

git学习——<三>git操作的更多相关文章

  1. git学习(三) git的分支操作

    git的分支操作 软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究: git中跟分支 ...

  2. git学习——<五>git分支

    git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...

  3. Git 笔记三 Git的初步使用

    Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...

  4. git 学习(1) ----- git 本地仓库操作

    最近在项目中使用git了,在实战中才知道,以前学习的git 知识只是皮毛,需要重新系统的学一下,读了一本叫  Learn Git in a Month of Lunches 的书籍,这本书通俗易懂,使 ...

  5. Git 学习之git 分支(三)

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  6. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  7. git学习 本地常用操作01

    注意: Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动 不要使用Windows自带的记事本编辑任何文本文件 开始git项目: 初始化本地项目: 初始化:g ...

  8. git学习(五) git diff操作

    git diff操作 git diff用于比较差异: git diff 不加任何参数 用于比较当前工作区跟暂存区的差异 git diff --cached 或者--staged 对比暂存区(git a ...

  9. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

随机推荐

  1. PHP——分页显示数据库内容

    test.php <?php header("Content-Type:text/html;charset=utf-8"); //加载分页类 include "pa ...

  2. ipmitool sdr type Temperature sdr 从传感器获取某一类数据

    1.1.1 常用监控命令总结.ipmitool sdr type Temperature 硬件监控 yum install  OpenIPMI ipmitool ipmitool sdr type T ...

  3. 二分 + 模拟 - Carries

    Carries Problem's Link Mean: 给你n个数,让你计算这n个数两两组合相加的和进位的次数. analyse: 脑洞题. 首先要知道:对于两个数的第k位相加会进位的条件是:a%( ...

  4. ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  5. RAID的简单说明

    RAID,为 Redundant Arrays of Independent Disks 的简称,中文为廉价※冗余磁盘阵列 . 磁盘阵列 其实也分为软阵列 (Software Raid) 和硬阵列 ( ...

  6. 指针*pbuffer和getchar 读取字符串

    在C语言入门教材里看到这一段代码,没看懂是什么意思.char buffer[10];char *pbuffer = buffer;while( (*pbuffer++ = getchar() )!= ...

  7. js函数柯里化

    function curry(fn){ // 代码 } function add(a,b,c){ return a + b + c; } const execAdd = curry(add); exe ...

  8. Amazon Web Services (目录)

    一.官方声明 AWS云全球服务基础设施区域列表 AWS产品定价国外区 AWS产品定价中国区 (注意!需要登陆账户才能查看) AWS产品费用预算 AWS区域和终端节点 二.计算 Amazon学习:如何启 ...

  9. POJ 3468 A Simple Problem with Integers(线段树功能:区间加减区间求和)

    题目链接:http://poj.org/problem?id=3468 A Simple Problem with Integers Time Limit: 5000MS   Memory Limit ...

  10. iOS 文件和数据管理 (可能会删除本地文件储存)

    转自:http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgramm ...