簡體   English   中英

如何修改舊的推送提交,然后推送新提交

[英]How to modify old, pushed commit, with new commits pushed after it

我正在將一個 repo 從 gitlab 遷移到 github,因為我們的 repo 在那里用完了空間,而且我們似乎無法擴展它的大小。 因此,很自然地,我在 github 上創建了新的 repo,我將 ssh 地址添加到了我本地 repo 實例上的現有遙控器,然后我嘗試調用

git push --mirror github

讓它運行幾個小時后,它失敗了。 在研究了為什么會這樣之后,我發現它可能太大而無法一次向上推送,我應該遍歷一批提交並一次推送一個。 在此過程中,對於添加 .gitignore 和 .gitattributes 文件的第一次提交,一切都完美無缺。

然而,在這一點之后,我們從實際項目中推送文件,並且我們已經推送了對於 github 來說太大但對於 gitlab 來說不是太大的文件,因此此時它們不會被表示在 LFS 中進行跟蹤.

基本上,我想回溯兩年的提交,將 LFS 跟蹤添加到這些文件中,在添加文件之前插入此提交,然后讓它更新剩余的樹。

我已經嘗試將我的 HEAD 重置回那個點,用新的 LFS 數據修改 .gitignore,並在添加文件之前將其推高。 但是,在嘗試這條路線時,我現在在嘗試推送舊提交時遇到錯誤,因為它說舊提交已過時並且需要拉取。

我所要求的甚至可能嗎?

Git LFS 提供了一個命令來遷移你的歷史git lfs migrate

如果您的大文件是 zip、jpg、png

首先檢查試運行:

git lfs migrate info --everything --include="*.zip,*.png,*.jpg"

然后去吧

git lfs migrate import --everything --include="*.zip,*.png,*.jpg"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM