git学习——<三>git操作

一、创建仓库

  创建一个目录

  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
原文地址:https://www.cnblogs.com/brolanda/p/4748696.html