Rebasing
变基允许您通过修改提交历史记录将更改从一个分支合并到另一分支。 它将源分支的提交重播到目标分支。 这会产生更清晰、更线性的提交历史记录。
示例:假设您有一个名为的功能分支 feature-branch
,并且您想要合并该 main
分支的最新更改。 您可以使用以下命令:
git checkout feature-branch
git rebase main
这会将分支的提交应用 main
到 feature-branch
. 任何冲突都需要在变基过程中解决。
Stashing
隐藏允许您保存当前尚未准备好提交的更改,并暂时恢复到干净的工作目录。 当您需要切换到不同的分支或处理不同的功能而不提交当前正在处理的更改时,这非常有用。
示例:假设您正在一个功能分支上工作,并且已经进行了一些更改,但是您需要切换到另一个分支。 您可以使用以下命令来存储更改:
git stash
切换到新分支后,您可以使用以下命令应用隐藏的更改:
git stash apply
Git Hooks
Git Hooks
是由特定 Git 事件(例如预提交、后提交、预推送等)触发的脚本。它们允许您自动执行某些操作或在工作流程中强制执行特定规则。
示例:假设您想在提交之前对代码运行 linter。 您可以创建一个预提交挂钩脚本,该脚本会触发 linter 并在出现任何 linting 错误时阻止提交。
Git Submodule
Git Submodule
允许您将另一个 Git 存储库作为子目录包含在主存储库中。 当您的项目依赖于外部库或组件时,这非常有用。
示例:您有一个需要特定库的项目。 您可以将其添加为子模块,而不是在存储库中复制库的代码。 这样,您可以将库代码分开并在需要时轻松更新。
Git Revert and Git Reset
Git Revert
通过创建一个新的提交来撤消先前的提交,该新的提交将撤消原始提交中所做的更改。 Git Reset
另一方面,允许您将分支指针移动到不同的提交,从而有效地从提交历史记录中丢弃提交。
示例:如果要撤消上次提交,可以使用 git revert HEAD
创建一个新提交来撤消上次提交中所做的更改。 如果你想完全放弃最后一次提交,可以使用将 git reset HEAD~1
分支指针向后移动一次提交。
Git 中的这些高级概念提供了有效管理存储库的强大功能。 了解如何使用它们以及何时应用它们将极大地增强您的 Git 工作流程和项目管理。