如何标记特定提交,以便在推送时可以在服务器挂钩上触发操作?例如,触发自动构建。
我无法添加标记" build_this"提交,因为标签必须是唯一的。
我可以使用" build_thisXXXX"等标记对其进行标记,其中XXXX是唯一字符串。但这很难看,让我的皮肤爬行。
我也可以让服务器钩子在提交消息中查找关键字(" build_this"),但这甚至更加丑陋,并且是永久性的。
有没有其他方式标记对我有用的提交?
-----编辑添加-------
好的,我来自这个问题:
我正在调查实现类似于git-flow工作流模式的内容,如下所述:http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
在这种模式中,我希望开发人员能够在服务器上为其功能分支触发构建。这些功能分支构建既可用于测试,也可用于确保功能分支代码更改无法破坏构建,然后再将它们合并回开发分支。
我不想为任何分支添加任何提交触发构建,因为我希望开发人员可以随意推动更改以便彼此协作,而不必担心"破坏构建"
我可以让他们登录Jenkins并手动为他们的分支启动构建,但这对开发人员来说是个麻烦。
所以我想知道是否有一种方法可以让开发人员通过用一个标记“#34; build me!”来标记他们的提交来启动构建。"对于开发人员而言,这可能不如登录和手动启动工作那么麻烦。
答案 0 :(得分:1)
这听起来有点像x-y-problem。有关工作流程的更多背景信息将会有所帮助。
我会在本地提交我的提交,每当我对我的更改感到满意时,我会推送所有提交并让服务器构建最新版本。这样您就可以拥有详细的提交历史记录,但只需构建每次推送的最后一次提交。
这种方式无需“临时”标记。
您还可以定义一些始终构建的“官方”分支和一些永远不会构建的“交换”分支。
您还可以定义专用的“build-me”分支。然后开发人员可以做类似的事情:
git push -f HEAD:build-me
这会将给定的提交推送到服务器,然后服务器构建它。在这种情况下,该分支没有其他意义触发手动构建。
答案 1 :(得分:0)
考虑使用git flow模式可能值得考虑。
您可以在此处找到更多信息:http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
所有进入master分支或develop分支的提交都将由服务器编译。
答案 2 :(得分:0)
当提交消息包含"标记"时,它很常见。对于问题跟踪系统(又名My great commit, this fixes #123, refs #321
),因此您可以在消息中包含fixes #
的每个提交上触发构建,因为这意味着程序员认为提交将实际修复它并且可能会合并请求