我正在构建一个库,该过程在/dist
中生成文件,该目录在版本控制中已被我忽略。为了部署该库,我想在Github发行版中拥有/dist/*
文件,但不提交给主服务器,因为我发现JQuery的开发人员正在这样做:
但是,我找不到办法。另外,我不确定这是否是个好习惯,但这看起来很干净。
感谢您的帮助。
最好, 阿尔瓦罗。
答案 0 :(得分:2)
jquery所做的是创建您可以称为“匿名分支”的内容。也就是说,从拓扑的角度来看,每个发行版都从master
分支出来,并在该分支上创建dist
文件夹;但他们没有创建git称为分支的分支(或者至少不保留分支);相反,他们通过在标签的末尾放置一个标签来保持“匿名分支”的生命。
例如,如果您是主用户并且准备从当前版本创建发行版,则可以
git checkout --detach
# generate the dist/ folder
git commit -m 1.0.37
git tag v1.0.37
git checkout master
# continue development
您最终会得到类似
的信息A -- B -- C -- D -- E -- F <--(master)
\ \ \
B+ D+ F+
^v1.0.17 ^v1.0.25 ^v1.0.37
带标记的版本具有dist文件夹,而主线则没有。
那是“如何”。您还询问这是否是一个好的解决方案。这不是我个人会使用的,但通常不会对技术造成损害。如果要在回购中使用部署软件包,这是一种方法。
(我更倾向于酌情使用npm,nuget或maven等将它们打包;并将它们相应地保存在工件仓库中。但是如果部署包不是很大,或者至少是各个版本的版本相似,因此增量压缩可能会使它们避免增加回购的大量存储量,然后我可以看到将它们集成到历史记录中/在一处就可以发现哪些优势。)
我想最重要的是,争论一个解决方案是否“干净”通常是徒劳的,因为它太主观了。如果您可以将其转换为客观可衡量的标准,则可以决定您的解决方案是否满足这些标准。我个人的标准是赞成使用部署工具进行部署,并且仅将git用于源代码控制。但是,如果部署需求很简单,那么很多人会从结合这些功能中获益良多。