主要学习的廖雪峰的文章
工作区和暂存区
-
工作区
- 工作区初始化git init的那个目录,也是我们修改文件的目录;
-
暂存区
打开目录会看到.git文件夹,他不属于工作区,我们称之为版本库;Git的版本库里存了很多东西,其中最重要的就是称为stage或index的暂存区,Git还会创建默认分支master,以及指向master的一个指针叫HEAD。
版本库主要记录文件修改的内容,这里不详细说明,但是千万不要删除,删除以后文件修改记录就都没有了;
-
工作区和暂存区的作用
当修改文件,未做任何操作的时候,文件修改在工作区;
文件修改以后,使用git add,文件修改已经添加到暂存区了;
-
git commit提交更改,文件被存在当前分支
(图为廖雪峰的文章中图)
-
git操作
-
修改文件 readme.md;通过git status命令会显示“Changes not staged for commit”,文件没有被提交到暂存区域;
$ git status On branch master Your branch is based on 'origin/master', but the upstream is gone. (use "git branch --unset-upstream" to fixup) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: readme.md no changes added to commit (use "git add" and/or "git commit -a")
-
添加文件到暂存;文件修改已经存在缓存,但是尚未提交
$ git add . $ git status On branch master Your branch is based on 'origin/master', but the upstream is gone. (use "git branch --unset-upstream" to fixup) Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: readme.md
-
提交,文件已经提交,显示commit id(每次提交都会有提交id,后续可以做回退使用)
$ git commit -m '提交' [master 27599b8] 提交 1 file changed, 1 insertion(+), 1 deletion(-) $ git status On branch master Your branch is based on 'origin/master', but the upstream is gone. (use "git branch --unset-upstream" to fixup) nothing to commit, working tree clean
-
-
注意:
- 在工作区域的任何修改,如果没有add到暂存区或提交,则都不能回退;
- 任何记录在暂存区或者提交的记录都能撤销/回退;