【问题标题】:automatically rejecting a commit based on certain criteria根据某些标准自动拒绝提交
【发布时间】:2014-05-06 12:43:47
【问题描述】:

我自己已经找了很长时间了,但我几乎没有这方面的经验,所以我只是希望这里有人以前遇到过这个问题。

是否可以在 SourceTree 中运行某种脚本,以检查文件的某些条件(例如,检查文件是否在任何地方使用“StaticMethodX.”,如果是,则提交尝试失败?

我正在尝试在团队中实施更好的编码标准。

非常感谢任何帮助。

【问题讨论】:

    标签: git version-control atlassian-sourcetree


    【解决方案1】:

    您可以:

    • 请您的客户使用pre-commit hook(也显示在this article 或在this question 中说明),但如果他们愿意,他们可以绕过它

    • 或者你可以设置一个pre-receive钩子,如果你的策略没有被遵守,它将拒绝服务器端的推送。
      它将使用git diff-index --cached --name-only,如this question 来获取每个推送文件的内容。

    服务器端方法通常受到青睐,因为它更易于部署、维护和实施。

    【讨论】:

    • "服务器端方法通常受到青睐,因为它更易于部署、维护和实施。" => 但是客户端是很好的补充,以避免必须等到推送才知道您的提交被破坏和不可推送。
    • @MatthieuMoy 我同意。只是更难部署、执行和更新。
    • @VonC:是的,我没有不同意 ;-)。只是补充你的答案。
    【解决方案2】:

    试试 npm pre-git,它允许你在 pre-commit 和 pre-push 上运行命令。 比使用终端使用以下命令打开源代码树

    open /Applications/SourceTree.app/Contents/MacOS/SourceTree
    

    现在你尝试提交和推送,sourcetree 将运行 pre-commit 和 pre-push 钩子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多