在命令行中使用 Git Rebase
本文将讨论有效地使用 git rebase 命令。 git rebase 命令允许我们更改一系列提交并修改我们存储库中的提交历史记录。
我们可以使用 git rebase 命令编辑、重新排序或压缩提交。
在命令行中使用 git rebase
以下是一些常见的使用选项。
- 我们可以编辑以前的提交消息。
- 我们可以将两个或多个提交合并为一个。
- 我们可以还原或删除存储库中不必要的提交。
变基时,我们可以针对分支或存储库中的某个时间点进行变基。
要针对分支进行变基,我们运行:
$ git rebase --interactive <branch_name>
为了对某个时间点进行变基,我们运行:
$ git rebase --interacive HEAD~
我们可以添加 HEAD~7 来变基到第七次提交。
让我们看看变基时可用的命令。
- pick - 我们用它来重新排序我们的提交历史。
- reword - 当我们想要更改提交消息时使用它。 它不会影响提交引入的更改。
- edit - 当我们想要编辑或修改提交时使用它。 我们可以将提交拆分为更小的提交或删除提交引入的错误。
- squash - 我们使用它将两个提交合并为一个,并让我们有机会为新提交提供新消息。
- fixup - 它与 squash 相同,除了它丢弃合并提交的消息并使用它上面的消息。
我们现在将尝试在示例中使用上述选项。 在此示例中,我们将根据 Delftscopetech 存储库中的某个时间点进行变基。
我们将变基 HEAD~7。 运行下面命令:
$ git rebase --interactive HEAD~7
文本编辑器显示以下输出。
我们的提交是从最旧到最新排列的。
在我们的文本编辑器中,我们将:
- 使用 squash 将提交 (fa39187) 压缩为提交 (1fc6c95)。
- 将最后一次提交 (7b36971) 移到提交 (6b2481b) 之前,并将其保留为 pick。
- 将提交 (c619268) 合并到提交 (6b2481b) 中,并使用修复丢弃提交消息。
- 使用编辑拆分 (dd1475d)。
- 使用 reword 修复提交消息 (4ca2acc)。
我们将修改文本编辑器中的命令,如下所示。
我们可以保存并关闭文本编辑器,Git 将启动 rebase。
Git 将跳过 pick 1fc6c95 并打开一个编辑器,因为 squash 需要我们的一些输入。 它应该看起来像这样。
如果对更改感到满意,您可以关闭编辑器并继续变基。 接下来的三个命令不需要我们的输入,但编辑需要并将以下消息打印到终端。
此时,我们可以进行任何更改并使用 git commit --amend 命令创建一个新的提交。 完成后,我们可以通过运行 git rebase --continue 命令继续。
始终在进行更改后运行 git rebase --continue 。 如果您忘记运行命令并继续编码,则以后无法变基。
但是,您可以通过以下方式补救:
-
运行
git reset --soft HEAD^
命令到 HEAD ref 到父级。 -
运行
git rebase --continue
以完成变基。
您还可以通过运行 git rebase --abort 命令来中止变基并重做该过程。 这将需要您再次解决合并冲突。
改写部分将需要我们的输入,Git 将使用以下信息打开文本编辑器。
我们可以更改文本,保存文件并完成变基。
简而言之,git rebase 命令允许我们根据提交更改存储库的状态。 我们可以压缩、重命名或重新排序提交。
在 rebase 时合并冲突时要注意。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。