首页 > 解决方案 > 具有多个本地分支的 Gitlab 存储库

问题描述

这更像是一个澄清问题。在 Gitlab 中,您可以从同一个存储库创建多个分支,因此存储库 myrepository.git 可以有一个 master 分支,然后是一个 development 分支。

当我将存储库克隆到本地存储库时,我经常做一个分支而不是整个存储库以及所有分支,例如

git clone <url> --branch development --single-branch

如果我在多个分支上工作,我会为每个分支创建一个单独的目录。我的理由是这看起来更干净,因为我会知道我在哪些分支中工作,并且没有简单的方法可以在分支之间切换和同步文件。我做错了吗?您是否有理由希望在同一目录中有多个分支?

谢谢。

标签: gitgitlabgit-branchgit-remote

解决方案


在某些版本控制系统(和某些工作流程)中,您所说的完全有道理,因为您只有少数长期存在的分支。

与早期版本控制系统相比,git 的一个经常重复的优势是“分支很便宜”,导致工作流程中每天都创建和删除多个分支是很常见的。它通常看起来像这样:

  • 您开始处理一项任务,并为该特定任务创建一个新分支。
  • 您进行了一些更改,并将它们提交到该分支。
  • 也许你在完成之前被叫去处理更紧急的事情——这很好,你可以查看“main”/“master”/“develop”分支并在不同的分支上工作,然后回到原来的位置。
  • 您以满意的方式完成任务,并将其推送到 Github 等中心位置。
  • 您的同事(甚至只是您自己)在 Web 界面中查看更改并确保它们可以合并。
  • 也许有人会检查它们并进行一些测试;也许一个自动脚本会检查它们并运行一些测试。
  • 最后,将更改合并到“main”/“master”/“develop”分支并删除任务分支。

所有这些都依赖于易于创建的分支,并且易于在它们之间切换,如果您将每个目录绑定到一个命名的分支,则不再是这样。


推荐阅读