git三个区域详解

一、可以将git简单的分为三个区域 
   1、工作区(working directory) 
   2、暂缓区(stage index) 
   3、历史记录区(history)  

二、三个区域关系:工作区是我们能看到的区域,我们在工作区修改增加代码;完成编辑后,我们用git add 将工作区文件添加到暂存区;然后利用git commit 提交文件到我们自己的分支。

操作命令如下:

1.git checkout --files或者git checkout .  ,把文件从暂存区域复制到工作目录,用来丢弃工作区修改,不改变暂存区;

2.工作区添加文件到暂存区  git add files  或者git add .   ,  .代表全部文件;

3.git reset -- files 或者git reset .清空暂存区文件,不改变工作去;

4.当执行 git rm --cached files 命令时,会直接从暂存区删除文件,工作区则不做出改变.

关于git reset

命令格式:git reset [--soft | --mixed | --hard] [<commit>]

1)使用参数--hard,如git reset --hard <commitID>

①替换引用的指向。引用指向新的提交ID。

②替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。

③替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。

2)使用参数--soft,如 git reset --soft <commitID>

即只更改引用的指向,不改变暂存区和工作区。

3)使用参数--mixed或者不使用参数(默认为--mixed),如 git reset <commit>

更改引用的指向及重置暂存区,但是不改变工作区。

git reset 或者git reset HEAD
仅用HEAD指向的目录树重置暂存区,工作区不会受到影响,相当于将之前用git add 命令更新到暂存区的内容撤出暂存区。引用也未改变,因为引用重置到HEAD相当于没有重置。
git reset -- filename  或者 git reset HEAD filename
仅将文件filename 的改动撤出暂存区,暂存区中其他文件不改变。相当于命令git add filename 的反射操作。
git reset --soft HEAD^
工作区和暂存区不改变,但是引用向前回退一次。当对最新的提交说明或者提交的更改不满意时,撤销最新的提交以便重新提交。git reset HEAD^或者git reset --mixed HEAD^

 工作不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。

   git reset --hard HEAD^

   彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。

三、远程操作

显示配置了哪些远程服务器:                      $ git remote                                     

显示配置了哪些远程服务器,同时显示URL:         $ git remote -v             

显示远程 详细信息:                             $ git remote show origin

修改远程标识名字:                              $ git remote rename A  B

删除远程配置:                                  $ git remote rm A

增加一个远程配置:                   $ git remote add A git://github.com/paulboone/ticgit.git 

原文地址:https://www.cnblogs.com/liujiaq/p/5670069.html