錯誤場景
本次錯誤的場景是關於在 gitlab
上刪除歷史提交中的大文件最後執行 git push
觸發的。
$ git push
Enter passphrase for key '/c/Users/edz/.ssh/id_rsa':
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (18/18), 1.74 KiB | 893.00 KiB/s, done.
Total 18 (delta 3), reused 18 (delta 3)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
! [remote rejected] master -> master (pre-receive hook declined)
! [remote rejected] release-1.0 -> release-1.0 (pre-receive hook declined)
! [remote rejected] release-2.0 -> release-2.0 (pre-receive hook declined)
! [remote rejected] v1.4 -> v1.4 (pre-receive hook declined)
! [remote rejected] v1.5 -> v1.5 (pre-receive hook declined)
error: failed to push some refs to ''
step1:
- 首先需要確認的是你已經具有了倉庫的
master
權限嗎?如果已經具有了跳過此步。
如果沒有肯定是不行的,所有需要先具有分支的 master
操作權限,這一點不適合我,因爲就是我創建的倉庫,所以我肯定是 master
權限。
step2:
- 關閉分支的保護機制
我推斷可能是因爲刪除了大文件而觸發的問題。找到倉庫的設置,點擊取消保護 unprotected
。
因爲我這裏已經刪除了,沒有刪除的在右下角可以取消保護。最後成功。
$ git push
Enter passphrase for key '/c/Users/edz/.ssh/id_rsa':
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (18/18), 1.74 KiB | 893.00 KiB/s, done.
Total 18 (delta 3), reused 18 (delta 3)
remote:
remote: To create a merge request for release-1.0, visit:
rmerge_request%5Bsource_branch%5D=release-1.0
remote:
remote: To create a merge request for release-2.0, visit:
merge_request%5Bsource_branch%5D=release-2.0
remote:
+ f590fbc...317cedb master -> master (forced update)
+ f590fbc...317cedb release-1.0 -> release-1.0 (forced update)
+ f590fbc...317cedb release-2.0 -> release-2.0 (forced update)
+ 4d2ac96...0ecb3ff v1.4 -> v1.4 (forced update)
+ 5b3f186...d967bac v1.5 -> v1.5 (forced update)