原文参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git跟踪并管理的是修改,而非是文件;修改指的是:比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
1、git add :新建
2、git commit :提交
3、git status :查看状态
4、git checkout:丢弃工作区的修改
①:git checkout -- readme.text 意思就是,把readme.text文件在工作区的修改全部撤销这里有两种情况:
一种是readme.text自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.text已经添加到暂存区,现在,撤销修改就回到添加到暂存区后的状态。
总之,git checkout就是让这个文件回到最近一次的git add 或者git commit时的状态。
注意:git checkout -- readme.text 中的--很重要,如果没有,就将变成了“切换到另一分支的命令”
checkout其实是用版本库里的版本来替换工作区里的版本,无论工作区是修改还是删除,都可以“一键还原”
②:git checkout -b dev:
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev //切换到dev分支(git checkout的另一个含义就是切换分支的意思)
那么现在讲讲暂存区的概念:
首先,工作区里有一个版本库,它是一个隐藏目录.git,git版本库里存了许多东西,其中最重要的就是称为stage的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD。
那么往git版本库里添加东西的时候。是分为两步进行的:第一步是用git add 把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
5、git reset HEAD<file>:可以把暂存区的修改撤销掉(unstage),重新放回工作区
git reset命令即可以回退版本,也可以把暂存区的修改回退到工作区。当我们使用HEAD时,表示最新的版本
6、git rm:删除也是一个修改操作,因此,git status 会告诉你哪些文件被删除了;一旦确定要从版本库中删除该文件,那就用命令git rm删掉,并且git commit;
7、git branch:查看当前分支;会列出所有分支,当前分支前面会有一个* 号。
8、git branch dev:创建dev分支。
8、git merge:该命令用于合并指定到当前分支。
9、git branch -d dev:删除dev分支
自己的理解:
git add实际上就是把操作的内容存放到暂2存区,而 git commit则是把暂存区的内容全部提交到当前分支!