git的相关知识

工作区和暂存区

工作区

例如我们创建一个本地仓库 名字gitProject 如图,这个gitProject就是一个工作区

版本库

上图我们看到工作区里面还有一个目录.git,而它并不算是工作区,而是git的版本库。

git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

我们知道把修改的内容提交到git 分两步执行的  git add  和git commit

git add把文件添加进去,就是把文件修改添加到暂存区;

git commit提交更改,就是把暂存区的所有内容提交到当前分支。

在我们创建git版本库时,git自动为我们创建了唯一一个master分支,git commit就是往master分支上提交更改。

现在我们操作一下 

下面我们在ViewController.m 中加入一个NSLog(@"!!!!!!!!!!!!!");

查看下状态  git status

git add . 下  然后查看下状态 

git add . 就是将你想要提交的内容放到暂存区中

然后git commit 下  然后查看下状态 

清空了暂存区 提交到了分支上面

我们对git的管理实际上就是修改,不管你做什么样的操作就是一个修改 。

下面我们看下 git checkout -- gitProject/gitProject/ViewController.m 

cat gitProject/gitProject/ViewController.m
查看ViewController.m 内容 如图

 
然后我们添加一行  NSLog(@"?????????");

cat gitProject/gitProject/ViewController.m 查看文件内容如图
git checkout --  gitProject/gitProject/ViewController.m   就是把文件在工作区的修改全部撤销,让这个文件回到最近一次git commitgit add时的状态。
然后我们看看git checkout -- 之后的文件内容 


文件内容果然复原了。

git checkout -- file 是撤销,如果没有--,就变成了切换到另一个分支的命令了

然后 我们看下 git reset HEAD <file>  这个命令可以把你add 到暂存区的修改撤销掉 

git add . 之后  执行 git reset HEAD /gitProject/gitProject/ViewController.m  

然后git commit 后会提示没有可提交的内容

下面讲讲删除文件

例如 现在创建一个ssss.h 和ssss.c 文件  然后提交到仓库

1 我们可以直接去仓库目录下吧你想删除的文件给删除了  然后 提交下 

2 或者用命令行 git rm 文件名  然后提交

但是如果你发现删错了,只要咱们版本库里面还有,我们就可以把误删的文件恢复到最新版本:使用

git checkout -- gitProject/gitProject/ViewController.m

参考
 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758392816224cafd33c44b4451887cc941e6716805c000

猜你喜欢

转载自www.cnblogs.com/lvhongjian/p/9811322.html