ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 初始化仓库 ### 1.初始化一个Git仓库,使用`git init`命令。 ### 2.添加文件到Git仓库,分两步: 1. 使用命令`git add <file>`,注意,可反复多次使用,添加多个文件; 2. 使用命令`git commit -m <message>`,完成。 ### 3.使用gitlog查看历史版本 ``` wangyijiadeMacBook-Air:August Notes bizzbee$ git log commit c904e8cc7677ef0de3fd8ad09aca68eb8cdae383 (HEAD -> master) Author: bizzbee <bizzbee@163.com> Date: Wed Jul 31 16:34:27 2019 +0800 adad commit f2eb811de2e57895c1f80d9061bcf6e0bf22a815 Author: bizzbee <bizzbee@163.com> Date: Wed Jul 24 23:35:38 2019 +0800 first ``` ### 4.退回到上一版本 >在Git中,用`HEAD`表示当前版本,上一个版本就是`HEAD^`,上上一个版本就是`HEAD^^`,当然往上100个版本写100个`^`比较容易数不过来,所以写成`HEAD~100`。 ~~~ $ git reset --hard HEAD^ HEAD is now at e475afc add distributed ~~~ ### 5.回到新版本 >回到新版本需要记住版本号。 ~~~ $ git reset --hard 1094a HEAD is now at 83b0afe append GPL ~~~ >记不住版本号可以使用reflog查看历史命令 ``` wangyijiadeMacBook-Air:August Notes bizzbee$ git reflog f2eb811 (HEAD -> master) HEAD@{0}: reset: moving to Head^ c904e8c HEAD@{1}: commit: adad f2eb811 (HEAD -> master) HEAD@{2}: commit (initial): first ``` ### 6.工作区 暂存区 版本库 #### 版本库(Repository) 工作区有一个隐藏目录`.git`,这个不算工作区,而是Git的版本库。 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支`master`,以及指向`master`的一个指针叫`HEAD`。 ![](https://box.kancloud.cn/701e02bf0b2d71ab51b7e2b6aa973d52_458x234.jpg) 分支和`HEAD`的概念我们以后再讲。 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用`git add`把文件添加进去,实际上就是把文件修改添加到暂存区; 第二步是用`git commit`提交更改,实际上就是把暂存区的所有内容提交到当前分支。 因为我们创建Git版本库时,Git自动为我们创建了唯一一个`master`分支,所以,现在,`git commit`就是往`master`分支上提交更改。 你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。 ### 7.撤销修改 `git checkout -- file`可以丢弃工作区的修改: ~~~ $ git checkout -- readme.txt ~~~ 命令`git checkout -- readme.txt`意思就是,把`readme.txt`文件在工作区的修改全部撤销,这里有两种情况: 一种是`readme.txt`自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是`readme.txt`已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次`git commit`或`git add`时的状态。 ### 8.删除文件 1. 要从版本库中删除该文件,那就用命令`git rm`删掉,并且`git commit`: 2. 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本: ~~~ $ git checkout -- test.txt ~~~ `git checkout`其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。