Gitlab仓库有多个分支到本地
Gitlab repository with multiple branches to local
这更像是一个澄清问题。在 Gitlab 中,您可以从同一个存储库创建多个分支,因此存储库 myrepository.git 可以有一个主分支,然后是一个开发分支。
当我将存储库克隆到本地存储库时,我经常做一个分支而不是整个存储库的所有分支,如
git clone <url> --branch development --single-branch
如果我在多个分支上工作,我会为每个分支创建一个单独的目录。我的理由是这看起来更干净,因为我知道我在哪个分支工作,并且没有简单的方法在分支之间切换和同步文件。我做错了吗?为什么您希望在同一目录中有多个分支?
谢谢。
在某些版本控制系统(和某些工作流程)中,您所说的非常有道理,因为您只有少量长期存在的分支。
git 相对于早期版本控制系统的一个经常重复的优势是“分支很便宜”,导致工作流程中通常 每天 创建和删除多个分支。它通常看起来像这样:
- 您开始处理一项任务,并为该特定任务创建了一个新分支。
- 您进行了一些更改,并将它们提交到该分支。
- 也许你在完成之前被叫去处理更紧急的事情 - 没关系,你可以查看“main”/“master”/“develop”分支并在不同的分支上工作,然后回来到你所在的地方。
- 您满意地完成任务,并将其推送到中央位置,例如 Github。
- 您的同事(甚至您自己)在 Web 界面中查看更改并确保它们可以合并。
- 也许有人检查它们并做一些测试;也许 自动脚本 检查它们并运行一些测试。
- 最后,您将更改合并到“main”/“master”/“develop”分支并删除任务分支。
所有这些都依赖于分支易于创建,并且易于切换,如果将每个目录绑定到一个命名分支,则不再如此。
谢谢大家的帮助。经过一些实验后,我相信我最初在尝试 Gitlab 时弄错了,所以我的程序是基于错误的假设。我做了这样的事情:
- 使用 git clone 克隆远程仓库的本地仓库。
- 在命令行中更改为克隆本地存储库。
- 使用gitcheckout尝试从master切换到develop分支。发生的事情是我注意到文件没有更新到开发分支,我仍然得到主分支文件,所以我误以为 Gitlab 无法做到这一点。
进一步的实验无法重现此行为。 Git 签出有效,如果您对文件进行了更改,它会警告您提交,正如我所料。我想也许 VPN 当时没有 运行ning,需要连接到 Gitlab 存储库,但我认为当我 运行 git结帐,所以我仍然不确定发生了什么。
就是想让大家知道,我问的不是必须的。无需为每个分支设置单独的目录。
这更像是一个澄清问题。在 Gitlab 中,您可以从同一个存储库创建多个分支,因此存储库 myrepository.git 可以有一个主分支,然后是一个开发分支。
当我将存储库克隆到本地存储库时,我经常做一个分支而不是整个存储库的所有分支,如
git clone <url> --branch development --single-branch
如果我在多个分支上工作,我会为每个分支创建一个单独的目录。我的理由是这看起来更干净,因为我知道我在哪个分支工作,并且没有简单的方法在分支之间切换和同步文件。我做错了吗?为什么您希望在同一目录中有多个分支?
谢谢。
在某些版本控制系统(和某些工作流程)中,您所说的非常有道理,因为您只有少量长期存在的分支。
git 相对于早期版本控制系统的一个经常重复的优势是“分支很便宜”,导致工作流程中通常 每天 创建和删除多个分支。它通常看起来像这样:
- 您开始处理一项任务,并为该特定任务创建了一个新分支。
- 您进行了一些更改,并将它们提交到该分支。
- 也许你在完成之前被叫去处理更紧急的事情 - 没关系,你可以查看“main”/“master”/“develop”分支并在不同的分支上工作,然后回来到你所在的地方。
- 您满意地完成任务,并将其推送到中央位置,例如 Github。
- 您的同事(甚至您自己)在 Web 界面中查看更改并确保它们可以合并。
- 也许有人检查它们并做一些测试;也许 自动脚本 检查它们并运行一些测试。
- 最后,您将更改合并到“main”/“master”/“develop”分支并删除任务分支。
所有这些都依赖于分支易于创建,并且易于切换,如果将每个目录绑定到一个命名分支,则不再如此。
谢谢大家的帮助。经过一些实验后,我相信我最初在尝试 Gitlab 时弄错了,所以我的程序是基于错误的假设。我做了这样的事情:
- 使用 git clone 克隆远程仓库的本地仓库。
- 在命令行中更改为克隆本地存储库。
- 使用gitcheckout尝试从master切换到develop分支。发生的事情是我注意到文件没有更新到开发分支,我仍然得到主分支文件,所以我误以为 Gitlab 无法做到这一点。
进一步的实验无法重现此行为。 Git 签出有效,如果您对文件进行了更改,它会警告您提交,正如我所料。我想也许 VPN 当时没有 运行ning,需要连接到 Gitlab 存储库,但我认为当我 运行 git结帐,所以我仍然不确定发生了什么。
就是想让大家知道,我问的不是必须的。无需为每个分支设置单独的目录。