当前位置:网站首页 > C++编程 > 正文

git checkout指定版本(git checkout指定版本并提交)



要在 Git 中使用分支和合并,首先需要了解内置到 Git 中、用于创建分支的命令。 该命令是 branch,后面是新分支的名称。

执行 branch 命令时,(默认情况下)使用当前分支的指针,并创建新分支,后者指向与当前分支相同的提交。 branch 命令不会自动将当前分支更改为新分支。 因此,您需要使用 checkout 命令。

Git 使用另一个指针(称为 HEAD 指针),指向当前正在使用的分支。 无论何时执行 checkout 命令,都会将 HEAD 指针更改为指向选定的分支。

您还可以在 checkout 命令中指定 -b 选项。 这将在一个命令中创建分支和签出。

我们来看一个直观示例。 已将三个更改提交到 Git 系统的 main 分支。 main 分支是当前选定的分支,因为 HEAD 指针引用的是 main 分支。 每次提交时,main 分支都会指向最新的提交。

在下一步中,将创建一个新的分支 feature-23,新创建的分支会成为选定的分支。 HEAD 指针将从 main 分支移动到 feature-23 分支。 使用带有选项 -bcheckout 命令。

或者,您可以使用 branch 命令,然后使用 checkout 命令。

 

修改某些文件并执行 commit 命令后,feature-23 分支指向最新的提交,而 main 分支仍然指向上一个提交。

-a 选项用于首先暂存更改,并立即将更改保存在 Git 目录中。 -m 选项用于提供消息。 在该示例中,提交消息使用井号标签,因此提交会自动链接到 ID 为 1 的工作项。 我们会在本学习路径后面的 Azure Boards 模块中进一步讨论这一点。

在下一个示例中,再次选择 main 分支,创建新的分支 feature-24,并添加了新的提交。

 

开发 Feature 23 后,决定部署该 feature。 因此,我们需要将 main 分支与 feature-23 分支合并,因为 main 分支用于生成和部署。

本合并是简单的转发合并,因为我们可以将主指针更改为指向与 feature-23 分支相同的提交。 要合并分支,您需要选择要合并到的分支。 在本示例中,您需要将 feature-23 中的更改合并到 main 分支中。

 

由于 main 分支和 feature-23 分支均指向同一提交,我们可以删除 feature-23 分支。 这样做不会删除提交和提交中的文件。 只会删除指针 feature-1。 main 分支仍指向提交 D。要删除分支,您需要使用 branch 命令的 -d 选项。

我们继续向 feature-24 分支添加新提交。 因此,首先签出该分支,进行修改或向该分支添加一些新文件,然后提交更改。

 

Feature 24 已完成开发,需要合并到 main 分支中,从而部署更改。 这不是简单的转发合并,因为 feature-24 是从提交 C 中分支出来的。同时,已经有另一个提交合并到 main 分支中。 要解决这个问题,应该应用三路合并。 此操作会合并 main 分支的最后一次提交、feature-24 分支的最后一次提交以及它们共有的提交,即提交 C。

首先,您需要选择要合并到的分支。

 

可自动创建新提交,合并两个分支。 您可能会遇到合并冲突,因为可能有一些对象在两个分支中都发生了更改。 在本地存储库中解决本合并冲突。

在这种情况下,您可以安全地远程访问 feature-24 分支。

要将分支推送到 Azure DevOps Server 中的远程存储库,需要使用 push 命令并指定 选项。

将在远程存储库中使用或创建新分支。 在 Azure DevOps 中,您可以在 Repos 部分选择分支,然后选择蓝色的新建分支按钮,以创建新分支。

在 Visual Studio 中创建和更改分支很简单。 您不需要使用各种不同的命令。 在左下角,您可以看到活动分支。 单击该分支名称,将在 Visual Studio Code 中弹出一个菜单,您可以在其中创建新分支或选择现有分支。

您还可以看到远程分支的列表。 如果存在未列出的远程分支,执行 fetch 命令可更新本列表。 在下一个示例中,本地存储库中只有 main 分支,远程存储库中也只有 main 分支。 如果存在另一个远程分支,只需选择该分支,系统就会自动创建链接到该远程分支的本地分支。

要创建新分支,您可以选择创建新分支选项。 系统会基于当前分支的提交创建新分支。

在更改为另一个分支之前,需要确保您的所有更改至少已暂存或提交。 否则,更改分支会使文件处于它们之前在该分支提交中所处的状态。 它们会覆盖您的工作目录中的文件。 如果您不希望工作内容丢失,请务必先提交!

在下一个示例中,创建了一个开发分支,您可以看到,它们都使用 ID 为 5c2b7bb0 的提交。

要将您的分支添加到远程存储库,必须选择 Visual Studio Code 中的发布图标,系统会为您安排一切。

要合并更改,首先需要切换到要合并到的分支。 如果我们要从 develop 分支合并到 main 分支,则需要切换到 main 分支。

选择正确的分支后,可以使用 Git: Merge Branch... 命令。 使用视图命令面板搜索该命令。 之后,可以选择要从中合并的分支。

每次合并时,都有遇到合并冲突的风险。 应先解决这些冲突,以便继续执行合并流程并提交。 在此示例中,存在合并冲突,因为 main 分支有一个提交,其中包含 Car 表中的一个新字段 Color。 在开发分支中,在同一个 Car 表中引入了一个新字段长度。 可以看到,用于这些字段的 ID 不同,因此对于 AL,使用这两个字段并没有问题,但 Git 会逐行比较这两个文件。 这两个字段在 Car.al 文件中为同一行。 Visual Studio Code 可显示一个窗口,您可以在其中看到合并冲突,并可解决该问题。 您可以决定保留当前的 main 分支更改;传入 develop 分支更改,或接受这两个更改。 Visual Studio Code 会在文本文件中打开上述内容,您仍然可以进行所需的所有修改。 您可以添加额外代码、删除代码、更改代码等。 要选择更改内容,您可以选择以灰色显示的文本,该文本位于合并冲突的正上方。

选择更改后,您的文件将显示在合并更改列表中。 您仍然需要将本文件暂存到暂存的更改列表中,然后才能提交更改。

到此这篇git checkout指定版本(git checkout指定版本并提交)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pcap文件怎么打开(pcap文件打开空白)2025-01-04 16:36:07
  • pcap文件怎么看(如何查看pcap文件)2025-01-04 16:36:07
  • can通信接口(can总线通信接口)2025-01-04 16:36:07
  • vs怎么用scanf输入(vs2019怎么用scanf_s)2025-01-04 16:36:07
  • codependence翻译成中文(codex翻译)2025-01-04 16:36:07
  • codepen官网(codeplex官网)2025-01-04 16:36:07
  • cnns认证的检测机构(cns认证标准的内容有哪些)2025-01-04 16:36:07
  • dcell怎么读(windcell怎么读)2025-01-04 16:36:07
  • ad21原理图生成pcb(ad15原理图生成pcb视频)2025-01-04 16:36:07
  • plc1ms定时器(plc定时器的使用方法及注意事项)2025-01-04 16:36:07
  • 全屏图片