2016-12-18 47 views
1

運行以下:GitLab拒絕推掌握即使我的項目業主

  • GitLab 8.15.0-RC1
  • GitLab殼牌4.0.3
  • GitLab馱馬V1.1.1
  • GitLab API V3
  • 的Git 2.11.0
  • 紅寶石2.3.3p222
  • Rails的4.2.7.1
  • PostgreSQL的9.2.18

我創建內部GitLab一個項目,並把我的代碼上有沒有問題。我是項目業主,在項目中擔任'主'角色。

默認情況下,Branch'master'被設置爲'受保護的分支',只允許具有'Master'角色的組成員合併並推送到該分支。

現在我直接在master中做了一些小的修改,但沒有保證單獨的分支。

然而,當我承諾,推動這些變化,我得到以下錯誤:

D:\Projects\MyProject>git push 
Counting objects: 8, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (8/8), done. 
Writing objects: 100% (8/8), 731 bytes | 0 bytes/s, done. 
Total 8 (delta 7), reused 0 (delta 0) 
remote: GitLab: You are not allowed to force push code to a protected branch on this project. 
To https://git.****.**/*****/****.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://git.****.**/*****/****.git' 

不知道我做錯了。我不是Git的專家,但這被認爲是「推動力」?由於這被所有用戶阻止,包括角色爲「主」的用戶。如果是這樣,我應該如何改變主分支?

它必須與「受保護的分支」有關。如果我刪除它,我可以推得很好。但是,由於「受保護的分支」也防止刪除分支及其歷史記錄,所以我想保留這一點。

+0

我認爲主分支在GitLab中被設置爲受保護的。 –

+0

禁用保護。如果你不知道如何去做。檢查[文檔](https://docs.gitlab.com/ee/user/project/protected_branches.html) –

+0

請閱讀整篇文章。在GitLab中設置一個保護分支應該防止任何人進行「強制推送」,但仍應允許來自那些具有「主」角色的人進行常規推送。這甚至在您鏈接的文檔中。 – ChrisDekker

回答

1

根據GitLab問題跟蹤器,這是與Git 2.11和最新的GitLab版本已知的不兼容性。

https://gitlab.com/gitlab-org/gitlab-ce/issues/25301

暫時降級到Git從源2.10應該可以解決這個問題,直到Git的2.11+適當的支持是建立在未來GitLab的釋放。

+0

請注意,這是**不是** Git中的錯誤!這是GitLab中的一個錯誤,它試圖以特定的方式控制*(從而限制)Git。 Git的內部機制在Git 2.11中發生了變化,並且在Git的後面進行控制(從而限制了)Git打破了GitLab對* Git的使用*。所以這是GitLab中的一個錯誤,但不在Git中。 – torek

+1

請注意,該錯誤表明服務器**上的Git 2.11 **存在問題。 –

+0

@JonathonReinhart:在這種情況下,GitLab是您運行自己的Git的服務器上運行的東西。 – torek