锁定一个分支,以便它不能被分阶段/提交到? (仅合并/等)

时间:2011-02-22 01:52:12

标签: git

我有一个master / develop分支系统,我已经爱上了它,但它带有一个基本规则。没有在developmaster上进行提交,只会进行合并。这很好,但是最近我不小心对我的开发分支进行了一些更改/提交,这让我感到烦恼。

我考虑将这些提交的所有权从develop转移到另一个已经存在的分支(我们称之为work),这是我应该首先处理的那个,但是我决定让这一个去。相反,我想先解决这个问题。如何锁定分支,以便提交对传统的正常更改无效?

例如,如果您对“已锁定”分支进行了更改,则不能git add,也不能git commit -a。我认为技术上我要求锁定舞台,但你明白了。有什么想法吗?或者我会更好地学习git,以便我知道如何修复提交父母问题?

1 个答案:

答案 0 :(得分:21)

复制此内容:

#!/bin/bash

if [[ `git symbolic-ref HEAD` == "refs/heads/master" ]]
then
    echo "You cannot commit in master!"
    exit 1
fi

pre-commit

中名为.git/hooks/的文件中

它会阻止您进入分支master。您可以轻松地自定义它以添加更多分支或个性化错误消息等。


顺便说一句,一个有用的技巧,知道你在master进行修改但你想在somebranch中提交它们的方法是:

git stash
git checkout somebranch
git stash apply

然后你就在somebranch,你的修改准备就绪了!