有没有办法让本地分支不可变?
Is there a way to make a local branch immutable?
我非常愚蠢,有时我将 "feature branch" 合并到错误的 master
分支而不是 develop
分支,这当然会导致痛苦。
因为这已经是第二次发生了,我想知道是否有办法让我的分支在本地不可变。
我已经尝试使用 this pre-commit hook 来阻止我直接在所述分支上进行提交,但这并没有停止合并,如:
git checkout master
git merge wip
有没有办法阻止对本地分支的所有可能更改?如果不是,是否至少可以防止更改被推送?
您不能使本地分支不可变(在合并操作之前没有运行的本地挂钩)。但是,如果您不打算在分支上进行提交,那么就不要签出它。如果您已经签出它,请删除本地分支:
$ git checkout some-other-branch
$ git branch -D master
现在,当您尝试签出 master
分支时,它将失败:
$ git checkout master
error: pathspec 'master' did not match any file(s) known to git.
如果您需要引用上游 master
分支(例如,对于 diff
),您可以直接引用它:
$ git diff origin/master
我非常愚蠢,有时我将 "feature branch" 合并到错误的 master
分支而不是 develop
分支,这当然会导致痛苦。
因为这已经是第二次发生了,我想知道是否有办法让我的分支在本地不可变。
我已经尝试使用 this pre-commit hook 来阻止我直接在所述分支上进行提交,但这并没有停止合并,如:
git checkout master
git merge wip
有没有办法阻止对本地分支的所有可能更改?如果不是,是否至少可以防止更改被推送?
您不能使本地分支不可变(在合并操作之前没有运行的本地挂钩)。但是,如果您不打算在分支上进行提交,那么就不要签出它。如果您已经签出它,请删除本地分支:
$ git checkout some-other-branch
$ git branch -D master
现在,当您尝试签出 master
分支时,它将失败:
$ git checkout master
error: pathspec 'master' did not match any file(s) known to git.
如果您需要引用上游 master
分支(例如,对于 diff
),您可以直接引用它:
$ git diff origin/master