设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
修补
调试
电子邮件
外部系统
服务器管理
指南
管理
管道命令
- 2.44.1 → 2.47.0 无变更
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 无变更
- 2.43.0 11/20/23
- 2.39.1 → 2.42.3 无变更
- 2.39.0 12/12/22
- 2.38.1 → 2.38.5 无变更
- 2.38.0 10/02/22
- 2.37.1 → 2.37.7 无变更
- 2.37.0 06/27/22
- 2.30.1 → 2.36.6 无变更
- 2.30.0 12/27/20
- 2.27.1 → 2.29.3 无变更
- 2.27.0 06/01/20
- 2.23.1 → 2.26.3 无变更
- 2.23.0 08/16/19
- 2.22.1 → 2.22.5 无变更
- 2.22.0 06/07/19
- 2.10.5 → 2.21.4 无变更
- 2.9.5 07/30/17
- 2.8.6 无变更
- 2.7.6 07/30/17
- 2.6.7 05/05/17
- 2.1.4 → 2.5.6 无变更
- 2.0.5 12/17/14
概要
git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>… git revert (--continue | --skip | --abort | --quit)
描述
给定一个或多个现有提交,撤销相关补丁引入的更改,并记录一些记录这些更改的新提交。这要求您的工作树是干净的(没有来自 HEAD 提交的修改)。
注意:git revert 用于记录一些新的提交来逆转一些早期提交(通常只撤销一个错误的提交)的效果。如果您想丢弃工作目录中的所有未提交的更改,您应该查看 git-reset[1],特别是 --hard
选项。如果您想提取特定文件,使其与其他提交中的状态相同,您应该查看 git-restore[1],特别是 --source
选项。请谨慎使用这些替代方案,因为它们都会丢弃工作目录中的未提交更改。
请查看 git[1] 中的“重置、恢复和撤销”以了解这三个命令之间的区别。
选项
- <commit>…
-
要撤销的提交。有关拼写提交名称的更完整列表,请参见 gitrevisions[7]。也可以指定提交集,但默认情况下不会进行遍历,请参见 git-rev-list[1] 及其
--no-walk
选项。 - -e
- --edit
-
使用此选项,git revert 将允许您在提交撤销之前编辑提交消息。如果您从终端运行命令,则这是默认值。
- -m parent-number
- --mainline parent-number
-
通常您无法撤销合并,因为您不知道合并的哪一边应该被认为是主线。此选项指定主线的父级编号(从 1 开始),并允许撤销相对于指定父级反转更改。
撤销合并提交表示您永远不会想要合并带来的树更改。因此,以后的合并只会引入那些不是先前被撤销合并的祖先的提交所引入的树更改。这可能是您想要的,也可能不是您想要的。
有关更多详细信息,请参见 撤销错误合并的 How-To。
- --no-edit
-
使用此选项,git revert 不会启动提交消息编辑器。
- --cleanup=<mode>
-
此选项决定在将提交消息传递给提交机制之前如何清理提交消息。有关更多详细信息,请参见 git-commit[1]。特别是,如果<mode> 的值为
scissors
,则在冲突的情况下,会将剪刀附加到MERGE_MSG
中,然后再传递给提交机制。 - -n
- --no-commit
-
通常,该命令会自动创建一些提交,其提交日志消息说明了哪些提交被撤销。此标志将应用必要的更改,将命名提交的影响撤销到您的工作树和索引,但不会进行提交。此外,当使用此选项时,您的索引不必与 HEAD 提交匹配。撤销是针对索引的初始状态进行的。
当您连续将多个提交的影响撤销到索引时,这很有用。
- -S[<keyid>]
- --gpg-sign[=<keyid>]
- --no-gpg-sign
-
GPG 签名提交。
keyid
参数是可选的,默认值为提交者身份;如果指定,则必须与选项粘贴在一起,中间没有空格。--no-gpg-sign
用于抵消commit.gpgSign
配置变量和更早的--gpg-sign
。 - -s
- --signoff
-
在提交消息末尾添加一个
Signed-off-by
尾部。有关更多信息,请参见 git-commit[1] 中的签名选项。 - --strategy=<strategy>
-
使用给定的合并策略。应只使用一次。有关详细信息,请参见 git-merge[1] 中的合并策略部分。
- -X<option>
- --strategy-option=<option>
-
将合并策略特定的选项传递给合并策略。有关详细信息,请参见 git-merge[1]。
- --rerere-autoupdate
- --no-rerere-autoupdate
-
在 rerere 机制将记录的解决方法重新应用到当前冲突以更新工作树中的文件后,允许它还使用解决方法的结果更新索引。
--no-rerere-autoupdate
是一种很好的方法,可以在将结果提交到索引(使用单独的git add
)之前,仔细检查rerere
所做的操作,并捕获潜在的错误合并。 - --reference
-
与使用“This reverts <被撤销提交的完整对象名称>.”作为日志消息正文的开头不同,使用 “--pretty=reference” 格式(参见 git-log[1])引用提交。
revert.reference
配置变量可用于默认启用此选项。
讨论
虽然 git 会自动创建一个基本的提交消息,但强烈建议您解释为什么撤销了原始提交。此外,重复撤销撤销会导致越来越难以理解的主题行,例如“重新应用“重新应用“<原始主题>””。请考虑将这些主题行改写得更短、更独特。
配置
本节中此行以下的所有内容都从 git-config[1] 文档中选择性地包含。内容与那里相同
GIT
是 git[1] 套件的一部分