在本文中,我们将主要介绍有助于分支和合并的基本 git 命令。如果您想知道什么是 git branch,请阅读这篇文章:Git-Branch 简介。以及 Git 和 Github 终极指南。这两篇文章将帮助您复习之前讨论过的一些概念。
git Checkout: git checkout 是导航器命令,有助于切换分支。此选项为您准备在特定的工作分支上工作。它更新工作树中的文件以匹配索引或指定树中的版本。如果没有给出路径,git checkout 也会更新 HEAD 以将指定的分支设置为当前分支。
git branch和git checkout命令就像最好的朋友,他们总是一起出去玩,因为他们总是携手合作。 git branch 命令用于创建新分支,显示现有分支,git checkout 用于切换到指定分支。
git checkout 选项:下面是一些带有可视化示例的基本 git checkout 选项的列表。
- git checkout “New Branch”:用于在分支之间导航。
- git checkout -b(or -B) “New Branch”:指定 -b 会导致执行分支选项并同时创建和签出新分支。如果给出 -b,则“新分支”如果不存在则创建;否则,它被重置。
- git checkout -q(或 –quiet):它抑制反馈消息。
- git checkout -f(or –force) :切换分支时,即使索引或工作树与 HEAD 不同,也可以继续进行。
- git checkout –detach:此选项不是检出要处理的分支,而是检出检查实验的提交。当“commit”不是分支名称时,这是 git checkout “commit”的默认行为。
git merge: git merge 命令允许您将使用 git branch 创建的两个或多个开发工作合并到一个分支中。它合并了来自命名提交的更改并将它们分散到当前分支中。在进行合并选项之前确保接收分支和合并分支是最新的远程更改。
git merge 选项:下面是一些基本的 git merge 选项的列表。
- git merge –commit:此选项用于与提交一起执行合并。
- git merge –no-commit:这个选项在创建合并提交之前执行合并和停止,让用户有机会在提交之前检查合并结果。
- git merge –edit:此选项在提交成功合并之前调用编辑器,并使用户能够证明合并而不是自动生成的合并消息。
- git merge –no-edit:这仅用于接受自动生成的消息。
- git merge -m “msg” :设置用于合并提交的提交消息。
- git merge -ff:当合并解析为快进时,它只更新分支指针,不创建合并提交。
- git merge -no-ff:与默认行为相反,即使合并解析为快进,它也会创建合并提交。
快进合并:当当前分支头是提到的提交的祖先时,就会发生快进合并。在这种情况下,不需要新的提交来存储合并的历史记录;相反, HEAD 被更新为指向命名提交,而不创建额外的合并提交。但是,这可以通过 –no-ff 选项忽略。
让我们试着理解一个 git branch、git checkout 和 git merge 的工作流程
- 我们即创建三个文本文件; Even-numbers.text、Odd-Numbers.txt 和 Prime-Numbers 分别列出了前五个偶数、奇数和素数。现在我们使用 git 将它们置于版本控制之下。
- 我们创建另一个分支,即“next-5-even-odd”,使用git branch “New-branch”与 master 分支分开工作,并在各自的文档中添加接下来的五个偶数和奇数。
- 现在使用git checkout命令我们切换到“next-5-even-odd”分支。
- 我们更新偶数和奇数列表,并使用git add和git commit命令提交更改。现在我们看到更改已提交到“next-5-even-odd”分支,该分支正在处理。
- 当我们切换回 master 分支时,我们观察到 master 分支不受任何其他分支中所做更改的影响。
- 现在,我们合并两个分支,即“master”分支和“next-5-even-odd”分支。使用git merge命令。
- 现在提交给“next-5-even-odd”分支的所有更改也反映在我们的“master”分支上
总结:在这篇文章中我们了解到git checkout命令是用来改变或切换分支的。此命令与git branch命令协同工作。 git merge命令将不同的工作路径连接到单个工作路径中。这些命令是 git 工作流的基本命令。