我们的团队即将从SVN切换到Git。我们都使用IntelliJ Idea作为IDE。
看到许多人每天都在SVN主干上工作,我担心,尽管经过培训和许多警告,许多人有时会忘记分支并在主分支编辑(我知道)我不喜欢它!)。
我意识到有一些方法可以保护master,甚至避免不允许直接提交,但有没有办法配置IntelliJ以某种方式警告用户,或者在主分支中禁止他们进行编辑?
答案 0 :(得分:2)
据我所知,名为master
的本地分支与任何其他本地分支没有什么不同,至少从Git的角度来看,可能是IntelliJ的Git插件。我认为保护master
分支不被直接提交绝对需要存储在存储库方面。
如果你真的想在本地屏蔽,你可以use a pre-commit hook。
话虽这么说,如果开发人员意外地开始在master
本地工作并做了一些提交,那么有一种相当直接的解决方法:
git checkout master
# work, add files
git commit -m 'did some work'
git checkout -b feature_branch # create feature branch from local master
git checkout master # return to local master branch
git reset --hard HEAD~N # replace N with number commits made to master
上面的三个直接Git命令从master
创建一个新分支,其中包含开发人员已经完成的相同工作。然后,我们返回master
并删除开发人员已经提交的提交。现在,开发人员拥有他原本打算拥有的功能分支,并且master
将恢复到其初始状态。