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

Lee*_*var 19 git

我有一个我喜欢的master/ develop分支系统,但它带有一个基本规则.没有提交developmaster仅进行合并.这很棒,但最近我不小心对我的开发分支进行了一些更改/提交,它让我失去了焦油.

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

例如,如果您在"锁定"分支上进行了更改,那么您git add也不可能git commit -a.我认为技术上我要求锁定舞台,但你明白了.有什么想法吗?或者我会更好地学习git,我知道如何解决提交父问题?

Sim*_*mon 21

复制这个:

#!/bin/bash

if [[ `git symbolic-ref HEAD` == "refs/heads/master" ]]
then
    echo "You cannot commit in master!"
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

到一个名为的文件pre-commit.git/hooks/

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


BTW,一个有用的技巧,知道你何时进行修改master但你想要提交它们somebranch是:

git stash
git checkout somebranch
git stash apply
Run Code Online (Sandbox Code Playgroud)

然后你somebranch准备提交你的修改了!

  • @Lee这个问题将帮助您实现全球化:http://stackoverflow.com/questions/2293498/git-commit-hooks-global-settings (2认同)
  • 也许`[[]]`是bash语法...尝试用`#!/ bin/bash替换`#!/ bin/sh` (2认同)