默认在mac下学习,只简单记录命令作用,根据廖雪峰大神的网站学习
- 先创建一目录 learngit
$ mkdir learngit
$ cd learngit```
2. 通过git init命令把这个目录变成Git可以管理的仓库
```$ git init```
3. 通过git add命令告诉Git,把文件添加到仓库暂存区
``` $ git add readme.txt```
4. 通过git commit命令告诉Git,把文件提交到仓库,-m后面输入的是本次提交的说明
```$ git commit -m "wrote a readme file"```
5. 修改了文件内容后,可通过 git status命令可以让我们时刻掌握仓库当前的状态
```$ git status```
6. 查看具体修改了什么内容,通过 git diff 命令, 再次添加,提交 转到3,4步
```$ git diff```
7. 通过 git log 查看版本历史记录,如果输出信息太多, --pretty=oneline参数,git log --pretty=oneline
``` $ git log 或 $ git log --pretty=oneline```
8. 返回之前某个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
```$ git reset --hard HEAD^```
9. 回退后又想重新回到最最新的版本,通过 git reflog 来查看我们用过的命令
``` $ git reflog```
这个命令列出了我们每一次提交的 commit id,通过命令 git reset --hard 04163a6cf ,可以返回最新的版本
```$ git reset --hard 04163a6cf```
10. 暂存区stage
``` git add 的状态:```
![0.jpg](http://upload-images.jianshu.io/upload_images/200838-faf457aa267cb275.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
git commit 的状态:
![1.jpg](http://upload-images.jianshu.io/upload_images/200838-272c6f1c0e651f8d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
11.git 跟踪管理的是修改,每一次的修改都要 git add 到暂存区内,最后git commit 才能把修改提交成功
12.撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
```git checkout -- file```
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
```git reset HEAD file```
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
13.删除文件
分两种情况:
一、确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
```$ git rm test.txt
$ git commit -m "delete test.txt" ```
二、误删文件,通过 git checkout -- test.txt 回复到最新版本
``` $ git checkout -- test.txt```