Git 如何遷移倉庫並保留 commit 記錄


一、作用

把在 A 托管平台的倉庫完全的遷移到 B 托管平台,保留 commit 歷史記錄。

二、場景

將 Gitlab 上的倉庫遷移到 GitHub
將 Coding 上的倉庫遷移到 GitHub
將 Gitee 上的倉庫遷移到 GitHub
……
遷移前后,保留 commit 歷史記錄,即在遷移后的新倉庫中能查詢歷史提交信息,同時也能保留小綠點。

三、步驟

  • 建立新倉庫
  • 克隆舊倉庫
  • 推送新倉庫

下面,以 Coding 遷移到 GitHub 為例。

A. Git Bash操作

1. 在 GitHub 建立新倉庫

在 GitHub 中新建一個同名項目(不同名也可以),不要添加 README.md,以及任何 License 和 .gitignore 文件,只需要新建一個空的倉庫。

只需要一個空的倉庫。

2. 克隆 Coding 上的項目

將 Coding 上想要遷移的項目完整克隆到本地。

本地執行

bash
git clone https://git.coding.net/wenyuan/blog.git --bare 

3. 將克隆下來的倉庫推送到GitHub

克隆完成后,將倉庫推送到 GitHub。

使用新倉庫頁面提供的倉庫地址(web URL),推送所有的分支和對象

bash
cd blog.git git push https://github.com/wenyuan/blog.git --all 

4. 完成后,再執行推送所有的Tags

bash
git push https://github.com/wenyuan/blog.git --tags 

這樣,整個倉庫就全部遷移到 GitHub 了,如果這些commit中的郵箱在GitHub配置中,可以看到小綠點也一起遷移過來了。

B. TortoiseGit 操作

這種簡單的操作我不是很喜歡用可視化工具,不過這里也介紹下怎么用「小烏龜」來完成倉庫的遷移。

1. 在 GitHub 建立新倉庫

同上,不贅述了。

2. 克隆 Coding 上的項目

同上,不贅述了。

3. 將克隆下來的倉庫推送到 GitHub

進入項目文件夾,鼠標右鍵 -> Git Sync…

TortoiseGit同步

點擊 Manage。

TortoiseGit同步-管理

填寫 GitHub 遠程倉庫的信息,並 Add New/Save,應用,確認。

TortoiseGit同步-管理-遠程信息

Remote URL 選則剛剛添加的 gitHub,然后 Push。

TortoiseGit同步-管理-推送

最后再提交 Tags.

TortoiseGit同步-管理-推送標簽

 

四、git命令區別

上面在推送代碼至 GitHub(新倉庫)時,我們用到了下面這個命令:

git push https://github.com/wenyuan/blog.git --all

其實還有另外一個命令:

git push https://github.com/wenyuan/blog.git --mirror

關於這兩個命令的區別,可以參見Git push –all vs –mirror

來源:文淵博客

百度雲盤資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM