在
gitlab
項目中,使用了太久的項目會有很多的提交,項目非常地大,如何清空項目以前的提交呢?又能保證現在文件不受影響,這里提供一個思路及解決方案,就是使用一個新創建的分支來處理這一情況。
解決方案
克隆一個項目
git clone ssh://git@gitlab.demo.com:10022/lake/aa.git
切換目錄
cd aa
創建臨時分支
git checkout --orphan tmp
添加所需要的文件
git add -A
添加commit信息
git commit -m "clean project"
刪除master分支
git branch -D master
更名分支
git branch -m master
提交分支
git push -f origin master
第一次使用
會出現以下錯誤
To ssh://git@gitlab. demo.com:10022/lake/aa.git
! [rejected] master -> master (non-fast-forward)
error: 無法推送一些引用到 'ssh://git@gitlab. demo.com:10022/lake/aa.git'
提示:更新被拒絕,因為您當前分支的最新提交落后于其對應的遠程分支。
提示:再次推送前,先與遠程變更合并(如 'git pull ...')。詳見
提示:'git push --help' 中的 'Note about fast-forwards' 小節。
[lake@localhost aa]$ git push origin master --force
對象計數中: 5, 完成.
Delta compression using up to 8 threads.
壓縮對象中: 100% (2/2), 完成.
寫入對象中: 100% (5/5), 271 bytes | 0 bytes/s, 完成.
Total 5 (delta 0), reused 4 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To ssh://git@gitlab. demo.com:10022/lake/aa.git
! [remote rejected] master -> master (pre-receive hook declined)
error: 無法推送一些引用到 'ssh://git@gitlab. demo.com:10022/lake/aa.git'
可在gitlab
項目的Settings
-> Repository
-> Protected branch
-> unprotect