我有兩個GIT項目A和B(空項目)。我想將整個項目A移動到項目B中,並在將所有文件從A移動到B時保留提交歷史記錄。在移動GIT存儲庫時保留GIT提交歷史記錄
使用GIT執行此操作的有效方法是什麼?我嘗試使用git filter-branch,但似乎我沒有這樣做,因爲它給了我「致命的... xyz /在倉庫之外」。有人可以提供一些指針嗎?
謝謝!
我有兩個GIT項目A和B(空項目)。我想將整個項目A移動到項目B中,並在將所有文件從A移動到B時保留提交歷史記錄。在移動GIT存儲庫時保留GIT提交歷史記錄
使用GIT執行此操作的有效方法是什麼?我嘗試使用git filter-branch,但似乎我沒有這樣做,因爲它給了我「致命的... xyz /在倉庫之外」。有人可以提供一些指針嗎?
謝謝!
下面是我們問題評論中描述的完整工作流程。
我假設你想從項目A到項目B推分支master
的整個歷史。
項目B夾>初始化git倉庫:
git init
項目的文件夾>添加項目B回購作爲新的遠程:
git remote add remoteb <urlToB>
項目的文件夾>結帳(如果需要)的適當的分支:
git checkout master
項目的文件夾>推分支master
的整個歷史,以remoteb
:
git push -u remoteb master
如果你想要額外的信息關於git push
命令和參數,你可以在這裏找到官方文檔:git push Documentation
第1步應該是'git init --bare',否則可能會出現類似'remote:error:拒絕更新簽出分支:refs/heads/master'的錯誤 –
如果項目B是一個你剛剛用'git init'初始化的空項目,將它定義爲來自項目B的新'remote'並執行'git push -u remoteb master'。 –
感謝您的建議。我相信,你的意思是來自項目A的新「遠程」?這是否保留了git commit歷史記錄? – psbits
如果你進入你的項目庫,添加一個指向項目B的新'remote',然後執行上面的'push'命令,你的整個歷史將被保留。 –