git - 具有多个本地分支的 Gitlab 存储库
问题描述
这更像是一个澄清问题。在 Gitlab 中,您可以从同一个存储库创建多个分支,因此存储库 myrepository.git 可以有一个 master 分支,然后是一个 development 分支。
当我将存储库克隆到本地存储库时,我经常做一个分支而不是整个存储库以及所有分支,例如
git clone <url> --branch development --single-branch
如果我在多个分支上工作,我会为每个分支创建一个单独的目录。我的理由是这看起来更干净,因为我会知道我在哪些分支中工作,并且没有简单的方法可以在分支之间切换和同步文件。我做错了吗?您是否有理由希望在同一目录中有多个分支?
谢谢。
解决方案
在某些版本控制系统(和某些工作流程)中,您所说的完全有道理,因为您只有少数长期存在的分支。
与早期版本控制系统相比,git 的一个经常重复的优势是“分支很便宜”,导致工作流程中每天都创建和删除多个分支是很常见的。它通常看起来像这样:
- 您开始处理一项任务,并为该特定任务创建一个新分支。
- 您进行了一些更改,并将它们提交到该分支。
- 也许你在完成之前被叫去处理更紧急的事情——这很好,你可以查看“main”/“master”/“develop”分支并在不同的分支上工作,然后回到原来的位置。
- 您以满意的方式完成任务,并将其推送到 Github 等中心位置。
- 您的同事(甚至只是您自己)在 Web 界面中查看更改并确保它们可以合并。
- 也许有人会检查它们并进行一些测试;也许一个自动脚本会检查它们并运行一些测试。
- 最后,将更改合并到“main”/“master”/“develop”分支并删除任务分支。
所有这些都依赖于易于创建的分支,并且易于在它们之间切换,如果您将每个目录绑定到一个命名的分支,则不再是这样。
推荐阅读
- python - 在 Jupyter 笔记本中执行单元后自动运行命令
- javascript - 在javascript中将base64 url转换为二进制
- android - 是否可以在硬件层面抵消 Android 的 Vsync 时序?
- javascript - Javascript window.scroll 不适用于 IE 11 中的选项对象
- java - 验证 Oracle API Gateway 上的内容
- r - 为什么在函数中使用 tidycensus get_decennial() 会失败?
- r - 使用 lapply 转置列的一部分并将其作为新列添加到数据框中
- python - 如何以编程方式返回关键字的位置(行和列)
- javascript - R闪亮中的ID和类组合的Javascript问题
- c++ - 将空参数列表函数从 C 转换为 C++