Reset

Reset,重置。

练习

1,重置。先查看一下历史:

→ git log --oneline
33c97bc Revert "让标题微笑"
3dc2c3f Revert "添加 .gitignore"
fb11f83 让 README.md 标题的首字母大写
0fd9dac 让标题微笑
7086650 添加 .gitignore
b5773ad 设置相关资源文档标题
23f3c2b 添加相关资源文档
a454700 设置说明文档的标题
39975b3 初始化

现在我想把项目的状态重置到刚做完 “让 README.md 标题的首字母大写” (fb11f83) 这个提交。也就是重围以后,这个提交之后的所有的提交都会被抹掉。

重置,执行:

git reset --hard fb11f83

返回:

HEAD is now at fb11f83 让 README.md 标题的首字母大写

HEAD 表示头部指针,现在它的位置是在 “fb11f83 让 README.md 标题的首字母大写” 这个提交上。查看历史:

→ git log --oneline
fb11f83 让 README.md 标题的首字母大写
0fd9dac 让标题微笑
7086650 添加 .gitignore
b5773ad 设置相关资源文档标题
23f3c2b 添加相关资源文档
a454700 设置说明文档的标题
39975b3 初始化

注意 “让 README.md 标题的首字母大写” 这个提交以后的提交都已经不见了。

2,重置暂存区。先打开 README.md ,在标题下面添加一行文字:

# Git :)
一本关于 Git 的书。

再打开 resources.md,也在标题下添加一行文字:

# 相关资源 :)
* 宁皓网《Git》课程包

查看状态:

git status

返回:

On branch master
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
    modified:   resources.md

no changes added to commit (use "git add" and/or "git commit -a")

把修改添加到暂存区:

git add .

再次查看状态:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   README.md
    modified:   resources.md

两处修改都在暂存区了。如果想重置暂存区上的东西,执行:

git reset

返回:

Unstaged changes after reset:
M    README.md
M    resources.md

提示把之前添加到暂存区的两处修改从暂存区里拿出来了。

再试一下:

git add .

然后:

git status

这次把对 resources.md 文件的修改从暂存区里拿出来。执行:

git reset resources.md

提交一下:

git commit -m '在说明文档里添加一段描述'

再执行:

git add .

然后再次提交:

git commit -m '在相关资源里添加一个资源列表项目'

历史现在变成了:

→ git log --oneline
e648ade 在相关资源里添加一个资源列表项目
14b8235 在说明文档里添加一段描述
fb11f83 让 README.md 标题的首字母大写
0fd9dac 让标题微笑
7086650 添加 .gitignore
b5773ad 设置相关资源文档标题
23f3c2b 添加相关资源文档
a454700 设置说明文档的标题
39975b3 初始化

results matching ""

    No results matching ""