我做了一個與git clone --depth=1
存儲庫淺表克隆。我做了一些改變...顯然沒有理解淺層克隆的複雜性......現在想把新項目推到一個新的遠程。Git:將淺層克隆推送到沒有「unshallow」的新遠程?
在我的主要開發機器:
git clone --depth=1 file://old_project new_project
cd new_project
# made a handful of commits here....
我現在想將項目推到另一臺機器。在遠程機器,我做的事:
git init --bare new_project.git
然後回我的機器上:
git remote remove origin
git remote add origin ssh://<remote host>/path/to/repos/new_project.git
現在,當我嘗試push
項目,我得到:
fatal: protocol error: expected old/new/ref, got 'shallow 7f6a256...'
fatal: The remote end hung up unexpectedly
Counting objects: 49299, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (44533/44533), done.
error: pack-objects died of signal 13
error: failed to push some refs to '<my new remote>'
我」什麼d喜歡做的是讓新的回購包含最初淺層克隆的歷史,但仍保留此點之後所做的更改。換句話說,我不想「分手」,並拉動所有以前的歷史。
如果沒有從項目中刪除.git
目錄並重新開始,是否有一種方法?
我的機器正在運行git 1.9.1。遙控器正在運行1.7.11.7。我可以更新我的身邊沒有不良影響,但不是遠程,因爲它承載了我不想冒險干擾的其他項目。
我並沒有把它作爲一個真正的答案,因爲它太過於推測,但我*認爲* 1.7.11.7和1.9.1之間的淺克隆支持的變化會在這裏失敗。在某些情況下,你可以製作'.git'目錄的tarball,直接拷貝它,完全繞過Git,做你想做的事。 – torek