gpt4 book ai didi

git - 防止在 master 分支中提交

转载 作者:IT王子 更新时间:2023-10-29 00:46:52 26 4
gpt4 key购买 nike

(为简单起见)我的 Git 存储库中有一个 master 分支和一个 dev。我想确保 master 分支始终正常工作,所以我所做的所有工作都应该在 dev 分支中进行。

但是,当我将更改 merge 到 --no-ff merge 时,我倾向于留在 master 分支中,并继续在其中工作(因为我忘记检查我的 dev 分支)。

我可以为 master 分支制定一条规则,声明我不能提交和快进 merge ,但只能 --no-ff从另一个分支 merge ?

这必须适用于私有(private)托管存储库(因此,不适用于 GitHub 或 Bitbucket)。

最佳答案

是的,这是可能的。您必须创建一个预提交 Hook ,拒绝提交到 master 分支。当您调用 merge 命令时,Git 不会调用预提交 Hook ,因此该 Hook 将仅拒绝常规提交。

  1. 转到您的存储库。

  2. 创建一个文件,.git/hooks/pre-commit,包含以下内容:

    #!/bin/sh

    branch="$(git rev-parse --abbrev-ref HEAD)"

    if [ "$branch" = "master" ]; then
    echo "You can't commit directly to master branch"
    exit 1
    fi
  3. 使其可执行(Windows 不需要):

    chmod +x .git/hooks/pre-commit

要禁用快进 merge ,您还必须将以下选项添加到您的.git/config 文件中:

[branch "master"]
mergeoptions = --no-ff

如果您还想保护远程上的 master 分支,请查看此答案: How to restrict access to master branch in Git

关于git - 防止在 master 分支中提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40462111/

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