在
gitlab
項目中,使用了太久的項目會有很多的提交情组,項目非常地大燥筷,如何清空項目以前的提交呢?又能保證現(xiàn)在文件不受影響院崇,這里提供一個思路及解決方案肆氓,就是使用一個新創(chuàng)建的分支來處理這一情況。
解決方案
克隆一個項目
git clone ssh://git@gitlab.demo.com:10022/lake/aa.git
切換目錄
cd aa
創(chuàng)建臨時分支
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
第一次使用
會出現(xiàn)以下錯誤
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'
提示:更新被拒絕亚脆,因為您當(dāng)前分支的最新提交落后于其對應(yīng)的遠(yuǎn)程分支做院。
提示:再次推送前,先與遠(yuǎn)程變更合并(如 'git pull ...')。詳見
提示:'git push --help' 中的 'Note about fast-forwards' 小節(jié)键耕。
[lake@localhost aa]$ git push origin master --force
對象計數(shù)中: 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