mirror of
https://github.com/LucasVbr/first-contributions.git
synced 2026-05-16 09:06:44 +00:00
41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
# 撤销一个提交
|
|
|
|
撤销一个提交意味着创建一个全新的提交,撤销之前提交所做
|
|
的所有更改。这就像在 Git 中执行 `CTRL + Z`。
|
|
|
|
在 Git 中,撤销操作变得更加简单,因为你推送到远程仓库的每个提交都有一个唯一的字母数字键(称为 SHA,安全哈希算法)与之关联。
|
|
这意味着只要你有该提交的 SHA,你就可以撤销任何提交。
|
|
但你必须小心按顺序撤销操作,以免破坏你的仓库。
|
|
|
|
|
|
为了获取我们想要撤销的特定提交的 SHA,查看所有提交的日志会很有帮助。
|
|
要获取此信息,我们可以运行命令:
|
|
```git log --oneline ```
|
|
仅运行 ```git log``` 命令也会给我们返回 SHA(长格式)。
|
|
但使用 ```--oneline``` 标志会告诉 Git 我们希望以简洁(单行)的方式显示,以便更容易阅读。
|
|
|
|
当你运行此命令时,显示的前 7 个字符就是所谓的简短提交哈希。
|
|
|
|
例如,运行 ```git log --oneline``` 时,我得到的输出如下:
|
|
```
|
|
389004d added spacing in title
|
|
c1b9fc1 Merge branch 'master' into tutorials
|
|
77eaafd added tutorial for reverting a commit
|
|
```
|
|
|
|
这表明,通过使用 ```git log --oneline```,我们可以获取仓库中所有提交的列表,并附带每个提交的前 7 个字符的 SHA。
|
|
|
|
现在,假设我想撤销我提交的 "在标题中添加了空格" 这个更改,以下是我将采取的步骤:
|
|
|
|
* 复制该提交的 SHA,在本例中是 ```389004d```
|
|
* 然后运行命令 ```git revert 389004d```
|
|
|
|
这将打开我的文本编辑器,并提示我编辑提交信息。
|
|
你可以选择保留 Git 的默认提交信息,该信息以 `Revert` 开头,
|
|
也可以根据自己的喜好自定义提交信息。
|
|
|
|
* 接下来,我将保存并关闭文本编辑器。
|
|
* 返回命令行。
|
|
* 运行 ```git push origin <branch-name>``` 将撤销的更改推送到 GitHub。
|
|
|
|
就这样,变更被撤销。在这种情况下,我的仓库将恢复到 ```c1b9fc1``` 时的状态。 |