可以排除某些文件在 git 中被覆盖吗?

问题描述 投票:0回答:1

例如,我有一个分支,我不希望任何人覆盖特定文件夹中的任何内容。假设它是

folder-1/test.py
,现在我有另一个文件夹
folder-2/run.py
我希望其他人对 folder-2 进行更改,但对 folder-1 的任何更改都将被拒绝。由于我对 git 缺乏经验,我只能想到
.yaml
文件,但要运行 github 操作,您需要将其推送到 repo,我希望在发生上述更改时拒绝推送。有没有办法做到这一点,还是我误解了 git 的工作原理?

git yaml
1个回答
1
投票

如果您使用的是 GitHub,则不能按照@Guildenstern 的建议使用预接收挂钩。事实上,不可能根据推送内容reject 推送。

您最好的选择是:

  • 限制谁可以推送到存储库。

  • 要求通过拉取请求提交所有更改。

  • 实施 CI 工作流程(例如使用 GitHub Actions),对于包含对这些目录的更改的拉取请求,该流程将失败。

您还可以提供一个

pre-commit
挂钩,它将拒绝对这些目录进行更改的本地提交,但这只是部分解决方案:
pre-commit
挂钩是建议性的;它们必须由开发人员明确配置,并且可以跳过。

© www.soinside.com 2019 - 2024. All rights reserved.