我有一个问题,如何在 GitHub 的公共或私有仓库中创建发布版本?如何使用 Windows 命令提示符或 Linux 终端进行操作?是否有特殊的命令?
我有一个问题,如何在 GitHub 的公共或私有仓库中创建发布版本?如何使用 Windows 命令提示符或 Linux 终端进行操作?是否有特殊的命令?
以下示例展示如何进行单个发布周期,首先您需要创建一个中央代码库,然后创建一个开发分支。
创建开发分支
git branch develop
git push -u origin develop
该分支包含您的项目的完整历史记录,而master
则包含新版本。然后,您的团队应克隆中央代码库并为开发分支创建跟踪分支。
为开发分支创建跟踪分支
git clone ssg: //user@/path/
git checkout -b develop origin/develop
每个人现在都有了本地副本。因此,您决定创建新功能。为此,您将以开发分支为基础创建各自功能的单独分支。
开始新功能
git checkout -b some-feature develop
您可以根据需要向功能分支添加提交,然后:
git status
git add <some-file>
git commit
您完成了功能开发
在添加新功能之后,您决定您的功能已经准备好,并且现在可以将其合并到本地的 develop
分支并将其推送到中央仓库,就像这样:
git pull origin develop
git checkout develop
git merge some-feature
git push
git branch -d some-feature
第一条命令确保在尝试合并功能之前,开发版本是最新的。注意,功能绝不能直接合并到master
。
您开始准备发布
当其他开发人员正在开发其功能时,您可以开始准备项目的第一个正式发布版本
,您可以使用新分支来封装发布准备工作。这一步还确定了发布的版本号:
git checkout -b release-0.1 develop
这个分支是用来清理发布内容、测试一切、更新文档以及做任何其他准备工作来准备即将发布的版本。它类似于专门用于打磨发布版本的功能分支。
完成发布
一旦发布准备就绪,您会将其合并到主分支和develop
分支中,然后删除发布分支。重要的是要合并回develop
,因为可能已经添加了关键更新到发布分支,它们需要对新功能可访问。如下所示:
git checkout master
git merge release-0.1
git push
git checkout develop
git merge release-0.1
git push
git branch -d release-0.1
你应该知道,发布分支在功能开发和公共发布之间起到了缓冲作用。每当你将某些内容合并到 master
分支时,最好为易于参考而标记提交:
git tag -a 0.1 -m "Initial public release" master
git push --tags
如果你想要更好的解释,请访问这个链接:https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
Go (golang)实现的GitHub发布:https://github.com/aktau/github-release
JavaScript实现的GitHub发布:https://github.com/ungoldman/gh-release
gh
,您需要先安装。gh
2.19.0(2022年11月)以来,您可以使用{{link3:gh create release
}}:
这很有帮助,因为从2022年10月起,您可以将最新版本明确设置为任何您想要的版本。Support explicitly marking a Release as "
Latest
" by @mislav in #6538Example:
cd /path/to/local/repository gh release create v1.3.0 --latest --target=main --notes "" gh release create v1.2.1 --latest=false --target=1.2-stable --notes ""
之前,存储库的最新版本是在最近日期创建的版本。如果多个版本具有相同的日期,则语义化版本号会打破平局。
这个新功能提供了一个明确的开关,在您创建时将版本标记为“最新”。