2017-01-11 94 views
3

我們的團隊即將從SVN切換到Git。我們都使用IntelliJ Idea作爲IDE。InteliJ:在主分支上強制只讀

鑑於目前許多人都在SVN主幹上工作,我擔心儘管經過培訓和許多警告,許多人有時會忘記分支並在主分支中編輯(I知道我已經穿上它了!)。

我意識到有辦法保護主人,甚至避免不允許直接提交,但是有沒有辦法配置IntelliJ以某種方式警告用戶,否則不允許他們在主分支中進行編輯?

回答

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已恢復到其初始狀態。

+0

這個'pre-commit'鉤子只能在終端上運行嗎? – Deep

+1

@深不錯,這是我的理解。因此,你仍然需要配置Bitbucket(GitHub等)來阻止直接提交,因爲有人可能意外地/意外地禁用了掛鉤。 –

+0

是的,可以在'remote'完成我認爲沒有選擇在我們使用的編輯器上進行。 – Deep