2016-04-06 71 views
1

我被克隆回購,其大小一天天增加。所以我想刪除舊的提交,只保留最新的提交,就像我用--depth 1重新克隆它一樣。我不想重新克隆它,有沒有辦法將本地回購轉換爲淺回收並保持git pull的工作?將git完整克隆轉換爲淺克隆

+2

你爲什麼不只是局部,但是你想克隆即'CD的/ tmp /; git clone /my/fat/repo/.git --depth 1; ' - 然後按照您認爲合適的方式移動/重命名/刪除目錄? – AD7six

+0

您還必須正確設置遠程 – max630

回答

-1

從我所瞭解的問題中,您只想保留工作目錄的當前狀態並刪除歷史記錄。如果是這種情況,請檢查您想保留的分支。然後刪除所有的git信息。我通常使用這些命令從工作目錄運行它:

查找。 -type f | grep -i「\ .git」| xargs的RM

CD ..

的git的init

CD

混帳添加--all

git的承諾-m 「COMMIT_MESSAGE」

這將創建一個本地副本僅包含當前提交。

+0

這將導致'git push'和'git push'無法正常工作 – Quanlong

+0

您需要將遠程設備添加到此設備。 gig remote add 。然後你可以做git push –

0

您可以使用參數「深度1」製作存儲庫的本地副本。 只需使用本地文件夾作爲克隆源。

例如:

git clone --depth 1 file://__absolute path__/localrepo localrepo.shallow