一、创建仓库

  创建一个目录

  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. Java多线程之Lock的使用<转>

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...

  2. 递归删除子目录下所有.la后缀文件

    删除当前目录及其子目录下的后缀名.la的所有文件 find ./ -name '*.la' | xargs rm -f

  3. #!/bin/sh与#!/bin/bash的区别

    Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh).C shell (csh) 和 Korn shell (ksh), 各有优缺点.Bourne she ...

  4. golang :连接数据库闲置断线的问题

    golang在进行数据库操作,一般来说我们使用Open函数创建一个数据库(操作)句柄:func Open(driverName, dataSourceName string) (*DB, error) ...

  5. C#实例.net_经典例子400个

    一共470多例winform 界面特效的源码. 窗体与界面设计... 9 实例001  带历史信息的菜单    10 实例002  菜单动态合并    12 实例003  像开始菜单一样漂亮的菜单.. ...

  6. Softmax vs. Softmax-Loss VS cross-entropy损失函数 Numerical Stability(转载)

    http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/ 卷积神经网络系列之s ...

  7. Swing与AWT在事件模型处理上是一致的

    Swing与AWT在事件模型处理上是一致的. Jframe实际上是一堆窗体的叠加. Swing比AWT更加复杂且灵活. 在JDK1.4中,给JFRAME添加Button不可用jf.add(b).而是使 ...

  8. jQuery实现tag便签去重效果的方法

    本文实例讲述了jQuery实现tag便签去重效果的方法.分享给大家供大家参考.具体实现方法如下: html代码如下: <head><script type="text/ja ...

  9. JavaWeb的编码问题

    http://blog.csdn.net/yuhaiqiang_123/article/details/51811419

  10. A mail sent to Google chromium.org Groups for Help

    Hi, I've ported Chromium M39 to 4.4 using WebView. The main modifications are: I changed AwContents: ...