[問題] git log 保留部份最新

看板Linux作者 (yshihyu)時間8年前 (2017/09/03 01:28), 8年前編輯推噓5(5013)
留言18則, 5人參與, 最新討論串1/1
我從有從github 抓了一包程式 , 發現 .git 太大 我想把保留最新的20筆 git commit 資料 請問要怎麼做才可以只保留最新20筆 抱歉我講一下我推到bitbucket 步驟 1. git clone https://github.com/xxxx/xxxx.git --depth 20 2. git remote add backup ssh://git@bitbucket.org/nameID/backup.git 3. git push -u backup master push 之後就出現下面訊息 ! [remote rejected]master -> master (shallow up not allowed) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.154.191 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1504373313.A.BA5.html

09/03 01:48, , 1F
git clone --depth 20
09/03 01:48, 1F

09/03 10:19, , 2F
這方法我測試過確實可以!但是我遇到我想把這包程式
09/03 10:19, 2F

09/03 10:20, , 3F
裡面的20筆commit 資料推到另外一個 repo 會失敗...
09/03 10:20, 3F

09/03 10:21, , 4F
錯誤訊息印象中是提到沒有是git log 不完整
09/03 10:21, 4F

09/03 13:03, , 5F
那你還是 pull unswallow 整個拉下來吧
09/03 13:03, 5F

09/03 13:04, , 6F
沒人知道你那 20 commits 樹枝是怎麼長的
09/03 13:04, 6F

09/03 17:33, , 7F
! [remote rejected]master -> master (shallow update
09/03 17:33, 7F

09/03 17:33, , 8F
not allowed)
09/03 17:33, 8F

09/03 17:35, , 9F
git fetch --unshallow origin <-- 網路上說這樣解決
09/03 17:35, 9F

09/03 17:35, , 10F
可是我這樣做看起來又把所有 commit 都pull 下來
09/03 17:35, 10F

09/04 00:56, , 11F
就是要全pull下來 你沒完整tree怎知道你要push到哪
09/04 00:56, 11F

09/04 11:22, , 12F
那有辦法針對最新20筆 commit 重建tree 嘛?
09/04 11:22, 12F

09/04 16:15, , 13F
我有時間研究這個我會直接把整個tree拉下來
09/04 16:15, 13F

09/04 17:37, , 14F
原 po 也沒說是怎麼推的。merge/rebase 還是 cherry-pick
09/04 17:37, 14F
※ 編輯: yshihyu (175.181.254.216), 09/05/2017 00:55:44 ※ 編輯: yshihyu (175.181.254.216), 09/05/2017 00:56:22

09/05 02:05, , 15F
你 backup 那個也 checkout 成 local branch 再 merge
09/05 02:05, 15F

09/05 02:05, , 16F
不然就土法煉鋼 git format-patch -20 & git am XD
09/05 02:05, 16F

09/07 01:38, , 17F
試了一下,似乎可以用commit-tree合併重建21個commit以前,
09/07 01:38, 17F

09/07 01:38, , 18F
然後用cherry-pick -m 1拉剩下的20個commit
09/07 01:38, 18F
文章代碼(AID): #1Pgkf1kb (Linux)
文章代碼(AID): #1Pgkf1kb (Linux)