$ git commit -m"init commit"
[master (root-commit) b1adf72] init commit
1 file changed, 3 insertions(+)
create mode 100644 README.md
$ echo"a new line in readme" >> README.md
1.
2.
3.
4.
5.
使用 cat 命令来看一下这个文件的内容:
$ cat README.md
Heading
A readme is useless if it is empty. But this readme is even more useless because it wastes the reader's time.a new line in readme
1.
2.
3.
4.
然后我使用 git add . 将其添加到暂存区,再然后做一次提交(提交的文本为:a commit that will live on for ever):
$ git commit -m'a commit that will live on for ever'
[master b731901] a commit that will live on for ever
1 file changed, 1 insertion(+)
$ git log
commit 01c9be75eff7b5ae48c6c35bbb7c63ac1ebc3fcd (HEAD -> master)
Author: Pratham Patel <pratham@itsfoss.com>
Date: Mon Feb 28 21:29:36 2022 +0530
Revert "a commit that will live on for ever"
This reverts commit b731901deaa30851832c07b7cb7ed535b68d473d.
commit b731901deaa30851832c07b7cb7ed535b68d473d
Author: Pratham Patel <pratham@itsfoss.com>
Date: Mon Feb 28 21:29:12 2022 +0530
a commit that will live on for ever
commit b1adf72e535921ff966ff78f062943b717e78a08
Author: Pratham Patel <pratham@itsfoss.com>
Date: Mon Feb 28 21:20:43 2022 +0530
init commit
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
上述输出可以看出,git 日志记录了这次撤销,但是 README 文件已经被回复到先前的状态:
$ cat README.md
Heading
A readme is useless if it is empty. But this readme is even more useless because it wastes the reader's time.
1.
2.
3.
删除提交
如果想要彻底恢复错误的提交且不保留日志,可使用 git reset。
git 中的每次提交(commit) 都相当于是仓库的一个快照,另外,在 git 中有一个名为 HEAD 的引用变量--使用 git log 查看日志的时候就能看到。这个 HEAD 用于指向你正在工作的分支中的最近提交。
为了演示,我们首先更改一个文件:
$ git commit -m"init commit"
[master (root-commit) b1adf72] init commit
1 file changed, 3 insertions(+)
create mode 100644 README.md
$ echo"a new line in readme" >> README.md
$ cat README.md
Heading
A readme is useless if it is empty. But this readme is even more useless because it wastes the reader's time.a new line in readme
1.
2.
3.
4.
5.
6.
7.
8.
9.
然后提交:
$ git add .
$ git commit -m"a commit that i will regret later on"
[master fb58caf] a commit that i will regret later on
1 file changed, 1 insertion(+)