Git – 合并
Git 是最流行的版本控制系统,它将随着时间的推移对我们的项目所做的更改记录在一个称为存储库的特殊数据库中。我们可以查看我们的项目,看看谁在何时以及为什么做了什么改变,如果我们搞砸了,我们可以很容易地将我们的项目恢复到早期的状态。在这篇文章中,我们将看到
- git分支合并的概念
- 执行此操作的基本 git 命令和
- 这些命令的核心含义
Note: Key Terminologies
- Current branch: The branch to be merged
- Target Branch: The branch in which we want to merge the current branch
Git合并的概念
git 合并的概念基本上是合并多个提交序列,存储在统一历史中的多个分支中,或者简单地说你可以说在单个分支中。
当我们尝试合并两个分支时会发生什么,git 获取两个提交指针并开始在这两个指定的位分支中搜索公共基本提交。当 git 找到公共基本提交时,它会自动创建一个“合并提交”并合并每个排队的合并提交序列。
git 中有一个适当的合并算法,在它的帮助下 git 执行所有这些操作并在存在冲突时提出冲突。
在我们的例子中,我们有两个分支,一个是名为“main”的默认分支,另一个是名为“dev”的分支,这就是我们的 git repo 在合并之前的样子。
在这里 git 找到公共基础,创建一个新的合并提交,并将它们合并。
通过运行命令“git merge <要合并的分支的名称(在我们的例子中是“dev”)>”来执行 git 合并操作。当我们执行合并时,git 总是与我们执行操作的当前分支合并(在我们的例子中它是“main”)。这样,被合并的分支不受影响。
合并类型:
- 快进合并
- 三路合并
Fast forward merge happens when the tip of the current branch (“dev” in our case) is a direct ancestor of the target branch (“main” in our case). Here instead of actually merging the two branches git simply moves the current branch tip up to the target branch tip. Fast-forward merge is not possible if the branches have diverged. Then we need a 3-way merge which uses a dedicated commit to merge two histories or you can say branches.
执行 Git 合并的基本命令及其核心含义
首先,要执行 git merge 操作,我们必须有一个 git repo 和其中至少两个分支。最初(当我们通过运行“git init”命令初始化 git repo 时)我们在任何 git repo 中都有一个默认分支。所以。首先,我们必须创建另一个分支。为此,我们必须运行以下命令
git branch
在我们的例子中,分支的名称是 dev。
这里我们创建了两个分支,一个是默认的“main”,另一个是“dev”。我们还在两个分支中提交了两项更改。
现在要首先合并这两个分支,我们必须按照以下步骤操作
- 结帐到目标分支以合并当前分支
- 然后运行以下命令
git merge
现在我们已经成功地合并了我们的两个分支,你可以看到我们有相同的更改,或者你可以在我们的两个分支中说提交。