git介绍

Git 有不同的重写历史的机制,包括 git commit --amend、git rebase 和 git reflog 命令。

阅读我们的教程将更好地理解这些命令的功能及其特殊性。

Git rebase

git rebase 命令用于将一系列提交移动或者组合到一个全新的基础提交。
此命令最重要的好处是清晰的历史记录,这对于在 Git 上进行有效工作很重要。
git rebase 命令有两种模式:标准模式和交互模式。
在标准模式下,我们可以使用 git rebase 将当前工作分支中的提交应用于传递的分支头。
在交互模式的帮助下,我们可以保持项目历史清洁。
要运行交互模式,请将 -i 选项添加到 git rebase。

多条消息

每个 Git 提交都有一条日志消息,它解释了提交中发生的情况。
在 rebase 时,在提交上运行以下命令以编辑提交消息。

  • 使用代表 reword 的“r”命令来暂停 rebase 播放并重写单个提交消息。
  • “s”命令,代表壁球,将暂停所有标记为 s 的提交,我们将收到一个提示,将单独的提交消息修改为组合消息。
  • “f”代表修复,类似于壁球。不同之处在于它不会因为打开编辑器来合并提交消息而停止 rebase 播放。

squash致力于一个干净的历史

squash 命令指定要合并到以前的提交中的提交。
这里 Git 打开文本编辑器并提示合并特定的提交消息。
下面的信息图完美地展示了这个过程。

使用 git rebase 命令修改的提交与原始提交具有不同的 ID。
如果之前的提交被重写,标记为 pick 的提交将拥有一个全新的 ID。

使用 git commit -- 修改最后一次提交

我们经常会忘记格式化提交、暂存文件或者在提交日志消息中出错。
这里 git commit --amend 来帮忙。
执行此命令将更正此类小错误。
通常,此命令用于更改最后一次提交。
执行 git commit --amend 命令将分阶段的更改与之前的提交结合起来。
重要的是要记住,为了避免协作问题,我们不应该修改其他用户正在开发的提交。

Git reflog 命令

“reflogs”代表参考日志,用于记录对分支尖端所做的更新。
使用 git reflog 命令,我们可以返回所有提交,包括尚未被任何分支引用的提交。
Git reflog 命令有自己的子命令,包括 git reflog show、git reflog expire 和 git reflog delete。

日期:2020-06-02 22:16:35 来源:oir作者:oir