gpt4 book ai didi

git - 如果检测到本地修改(包括未跟踪的文件),如何防止 git push?

转载 作者:太空狗 更新时间:2023-10-29 13:10:36 25 4
gpt4 key购买 nike

有时我们团队中的某个人执行 git push 并破坏了构建,因为他的本地构建工作正常,但他忘记在推送之前将所有本地修改和未跟踪的文件提交到 git。

我想阻止这种情况...今天我翻了一个小时左右的文档,但找不到任何内置的东西。

有没有人有解决办法?

最佳答案

您可以使用 pre-push Hook (自 git 1.8.2 起)。

您的预推钩子(Hook)可以检查 git status 的退出代码,如果 git status 返回非零值,则返回 0(可以推送),否则返回 1(不允许推送)。

git-status 的手册页说:

If there is no path that is different between the index file and the current HEAD commit (i.e., there is nothing to commit by running git commit), the command exits with non-zero status.

任何使用 git 1.8.2 或更高版本创建的 repo 都会在 .git/hooks 目录中有 pre-push.sample,这是实现的有用起点你的政策。这里有更多使用 pre-push Hook 的好例子:http://blog.ittybittyapps.com/blog/2013/09/03/git-pre-push/

请注意,该 Hook 不会在上游存储库上运行。每个克隆都需要安装此 Hook ,以执行您的策略。 ( Hook 不会作为存储库的一部分进行克隆。由于 Hook 是由 git 执行的,因此这种设计可以防止恶意 Hook 在开发人员的机器上运行。恶意代码应该进入 Makefile 或配置脚本,开发人员无需查看即可运行。)

关于git - 如果检测到本地修改(包括未跟踪的文件),如何防止 git push?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com