2016-05-16 83 views
3

從gerrit到github,我缺少一個主要功能,即allowing only fast forward merges。基本上,在我看來,如果您在陳舊的主分支上籤署了更改,任何類型的「CI構建簽名」都是無用的。配置github(企業)回購只允許快速前進提交/ PR合併?

我想知道是否有任何方式可以在(企業)github中配置?是否有任何設置或其他伎倆,不會允許用戶按下github中的「合併請求」按鈕,除非該分支已正確重裝?

最好,我甚至想補充說,它還應該檢查PR中的所有提交是否被壓縮(並且PR除非它僅包含一個提交,否則不能合併)。

所以,完美的解決方案:只允許PR合併,它有一個提交,並在之前進行了重定位。

回答

-1

我認爲你可以添加一個命令到你的git配置文件,只強制執行快進。您可以在本地(即特定於存儲庫的)git配置文件或全局git配置文件中執行此操作。

修改你的本地git的配置文件,(從git倉庫內),鍵入以下內容到你的終端:

git config --add branch.master.mergeoptions --ff-only

或使其全球性的,即適用於所有的Git項目,您的機器上

git config --global --add branch.master.mergeoptions --ff-only

運行上述命令的結果是,以下被添加到您的git的配置文件(所以你當然可以隻手動添加此)

[branch "master"] mergeoptions = --ff-only

全球混帳配置文件通常位於~/.gitconfig和存儲庫特定混帳配置文件通常位於name_of_repo/.git/config

我還沒有真正嘗試過。讓我知道它是否有效或不適合你。

我不知道如何執行一個提交。我曾經在一個地方做過你所描述的事情,只做了一次,只做了一次。最終你會得到一個很好的線性歷史記錄,但它確實會減慢開發速度,特別是對於大於2的開發人員團隊。更靈活一點的方法可能是要求人們執行以下操作。

從開發分公司(力需要作爲底墊放歷史不同步): git pull git rebase origin/master git push --force

驗證您的測試已經通過,則:

git checkout master git merge <name_of_branch> --squash git push

可以也標記合併成主人,如果你想給一個版本給每個承諾主,即做以下以及:

git tag <tag_number> git push --tag

相關問題