确保 git 提交期间的编码风格 [关闭]

2023-12-24

在我的公司,我设置了持续集成测试,当有人将代码推送到服务器上时我运行测试。

现在我想检查代码是否与我们的基本编码规则匹配,第一条规则是“在代码上运行 mogrify!”

有什么东西可以做这个检查“出架”吗?该分析的输出可以存储在文件或其他内容中。

thanks


在 git 提交期间,您可以要求用户设置pre-commit可以运行测试并阻止提交的钩子。

但是您无法保证您的用户实际上遵循该策略(或通过git commit --no-verify).

所以你应该放一个pre-receive挂钩在您的中央存储库(所有开发人员都在推送的存储库)中,以便在您检测到您的工具尚未正确运行时拒绝推送。

See Git 钩子 http://git-scm.com/book/en/customizing-git-git-hooks.

关于工具,去壳 https://github.com/bengardner/uncrustify可以设置为预提交挂钩,但这可能有点慢 https://stackoverflow.com/a/12286677/6309。但它有以前这样用过 http://www.itk.org/pipermail/insight-developers/2010-September/015333.html.
替代方案是在此线程中列出 http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-May/021378.html但看起来很过时。

您在服务器端应用的想法可以作为预接收挂钩起作用(这意味着如果您检测到推送的代码与接收到的相同代码和“未加密”的代码之间存在差异,您将拒绝推送)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确保 git 提交期间的编码风格 [关闭] 的相关文章

  • 哪种 git commit 实践更好?

    我坚信 对一个问题做出一次承诺是一种很好的做法 我确信我在 最佳实践 之类的文章中读过它 因此 我的工作流程如下 对于新问题 我创建了一个新的本地分支git checkout b new issue 将所有更改提交到其中 有时这涉及到lot
  • Git 将合并恢复到特定父级

    我有一个 git 存储库 但在恢复合并时遇到问题 当前哈希为 0ce2ca0b35f59af267241cf4d40d16a3e13ba6f3 它有两个父母 df1acf5f54426d30f12c6b4558c3dd922297aae3
  • 在 Windows 上,无法创建目录“/home/<用户名>/.ssh”

    要使用 gitbash 在 Windows 上配置 git 如所解释的here https help github com articles generating a new ssh key and adding it to the ssh
  • 如何让 Git diff 忽略版本号更改?

    有没有办法从 Git diff 中消除版本号变化噪音像这个 https github com keith Xcode app strings commit 9502c601cad31ef452c4cd6e8ece3982345fba1d 具
  • 如何比较本地 Git 分支与其远程分支

    我怎样才能看到diff本地分支和远程分支之间 git diff
  • 从私有 GitHub 存储库迁移到公共和私有

    我使用 GitHub 上的私人存储库开发了一个客户项目 我们现在要做的就是开放其中的某一部分 并产生该项目的开源版本 我们的想法是 客户的版本将在此基础上构建 对开源版本所做的任何更改也应适用于私有版本 现在的问题是我不能将当前的 GitH
  • 在 GitHub 上看不到“在 Xcode 中打开”按钮

    正如在GitHub 和 Xcode 9 中的新源代码管理工作流程 https developer apple com videos play wwdc2017 405 time 204Apple 视频会话 我们可以直接从 Xcode 克隆项
  • 分支和文件夹的 gitolite 权限

    在 gitolite 我想要 developers能够推送到除以下之外的任何分支master I want user1能够推送到任何分支 包括master 除了不是某个目录master 我该怎么做呢 这应该解决以下两个问题 repo are
  • Git fetch 在 for-each-ref 中不显示远程分支

    我有一个远程分支feature test2 我想把它拿过来 我跑 git fetch origin feature test2 我得到 From
  • 致命错误:找不到“Fabric/Fabric.h”文件

    我正在使用 xcode 6 3 1 OSX 10 10 3 并且我已经在本地系统上成功配置了 crashlytics 它工作正常 并通过 Fabric 应用程序发布构建 但是当我将相同的代码库转移到 teamcity 时 它向我显示以下错误
  • github 网络图查看器的替代品? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我单击 github 上的 forks 按钮时 我想获得一个摘要 这就是我使用网络图查看器获得的结果 但它并不完全理想 我会做什么ide
  • Git 粒度——解决一行内的差异

    git 基于行的粒度或 diff 粒度是否可以增加到单词 字母分辨率 每行多条语句或使用 git 编写纯文本是值得的 根据评论重新阅读问题时 我想我明白了您最初的意思 所以我将给出一个真正的答案 与伊斯梅尔 巴达维的一行评论 https s
  • git:推送单个提交

    假设我进行了多次提交 并希望挑选哪些提交到远程存储库 我该怎么做 在ascii中 C1 gt C2 gt C3 gt C4 我想推C2和C4 通过变基 重置 推送然后重置进行重新排序是否有效 C1 gt C2 gt C3 gt C4 gt
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 有没有办法显示 Visual Studio 执行的 Git 命令? [复制]

    这个问题在这里已经有答案了 在 Visual Studio Code 中 有一个 显示 Git 输出 菜单项 显示最近运行的 Git 命令 有关其外观的示例 请参阅3 35 在这个视频中 https code visualstudio co
  • 如何使用 GitLab 管道中的密钥通过 SSH 连接到目标服务器?

    当 GitLab 管道成功时 我想通过 SSH 使用公钥连接到服务器 正如我所看到的 我需要在 GitLab 端使用 ssh keygen 生成一个密钥并将其添加到我想要连接的服务器上 我可以在管道期间生成密钥 但由于公钥未添加到目标服务器
  • Egit 拒绝接受 id_rsa

    我是第一次尝试在 Eclipse 中设置 egit 的 git 用户 这样我就可以继续通过 Eclipse 轻松编码 问题是 每次我尝试通过 egit 克隆存储库时 都会出现错误 无法列出可用分支 原因 ssh 电子邮件受保护 cdn cg
  • 如何防止自动工具自动重新生成配置脚本?

    有时由于SCM没有严格记住文件的时间戳 生成的Makefile会认为需要重新运行 autoreconf i 或相当于从Makefile am重新生成Makefile in 从configure ac重新生成配置等 我该如何防止这种情况 我想
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在

随机推荐