Skip to content

git-replay

实验性:在新基础上重放提交,也适用于裸仓库。

概要

bash
(EXPERIMENTAL!) 'git replay' ([--contained] --onto=<newbase> | --advance=<branch> | --revert=<branch>)
			     [--ref=<ref>] [--ref-action=<mode>] <revision-range>

描述

获取一系列提交并将它们重放到新位置。保持工作树和索引不变。默认情况下,使用原子事务更新相关引用(所有引用更新或都不更新)。使用 --ref-action=print 避免自动引用更新,而是获取可以管道传输到 git update-ref --stdin 的更新命令。

此命令是实验性的。行为可能会改变。

选项

  • --onto=<newbase>:创建新提交的起点。可以是任何有效的提交,而不仅仅是现有的分支名称。当指定 --onto 时,修订范围中的分支将被更新以指向新提交。
  • --advance=<branch>:创建新提交的起点;必须是分支名称。历史在 <branch> 之上重放,<branch> 被更新以指向结果历史的提示。
  • --revert=<branch>:创建还原提交的起点;必须是分支名称。当指定 --revert 时,修订范围中的提交被还原(它们的更改被撤消),还原的提交在 <branch> 之上创建。
  • --contained:更新指向 <revision-range> 中提交的所有分支。需要 --onto
  • --ref=<ref>:覆盖使用重放结果更新的引用。引用必须完全限定。
  • --ref-action[=<mode>]:控制如何更新引用。模式可以是 update(默认,使用原子事务直接更新引用)或 print(输出用于管道使用的 update-ref 命令)。
  • <revision-range>:要重放的提交范围。有关详细信息,请参阅 git-rev-parse(1) 中的"指定范围"。

另请参阅

git-rev-parse(1)

Git

git 套件的一部分

基于 CC BY-NC-SA 3.0 许可发布