git log 保留部份最新 - Linux

Table of Contents

我從有從github 抓了一包程式 , 發現 .git 太大

我想把保留最新的20筆 git commit 資料

請問要怎麼做才可以只保留最新20筆

抱歉我講一下我推到bitbucket 步驟
1. git clone https://github.com/xxxx/xxxx.git --depth 20
2. git remote add backup ssh://[email protected]/nameID/backup.git
3. git push -u backup master

push 之後就出現下面訊息

! [remote rejected]master -> master (shallow up not allowed)

謝謝

--

All Comments

Charlotte avatarCharlotte2017-09-07
git clone --depth 20
Isabella avatarIsabella2017-09-10
這方法我測試過確實可以!但是我遇到我想把這包程式
Jack avatarJack2017-09-13
裡面的20筆commit 資料推到另外一個 repo 會失敗...
Olga avatarOlga2017-09-16
錯誤訊息印象中是提到沒有是git log 不完整
Audriana avatarAudriana2017-09-19
那你還是 pull unswallow 整個拉下來吧
Vanessa avatarVanessa2017-09-21
沒人知道你那 20 commits 樹枝是怎麼長的
Edwina avatarEdwina2017-09-24
! [remote rejected]master -> master (shallow update
not allowed)
Audriana avatarAudriana2017-09-25
git fetch --unshallow origin <-- 網路上說這樣解決
可是我這樣做看起來又把所有 commit 都pull 下來
Carolina Franco avatarCarolina Franco2017-09-28
就是要全pull下來 你沒完整tree怎知道你要push到哪
Doris avatarDoris2017-09-30
那有辦法針對最新20筆 commit 重建tree 嘛?
Oliver avatarOliver2017-10-04
我有時間研究這個我會直接把整個tree拉下來
David avatarDavid2017-10-04
原 po 也沒說是怎麼推的。merge/rebase 還是 cherry-pick
Freda avatarFreda2017-10-08
你 backup 那個也 checkout 成 local branch 再 merge
不然就土法煉鋼 git format-patch -20 & git am XD
Oscar avatarOscar2017-10-12
試了一下,似乎可以用commit-tree合併重建21個commit以前,
然後用cherry-pick -m 1拉剩下的20個commit