兩個 git 倉庫合併

如今有兩個倉庫 kktjs/kktkktjs/kkt-next 咱們須要將 kkt-next 倉庫合併到 kkt 並保留 kkt-next 的全部提交內容。git

# 1. 克隆主倉庫代碼
git clone git@github.com:kktjs/kkt.git
# 2. 將 kkt-next 做爲遠程倉庫,添加到 kkt 中,設置別名爲 other
git remote add other git@github.com:kktjs/kkt-next.git
# 3. 從 kkt-next 倉庫中拉取數據到本倉庫
git fetch other
# 4. 將 kkt-next 倉庫拉取的 master 分支做爲新分支 checkout 到本地,新分支名設定爲 kkt-next
git checkout -b kkt-next other/master
# 5. 切換回 kkt 的 master 分支
git checkout master
# 6. 將 kkt-next 合併入 kkt 的 master 分支
git merge kkt-next
# 若是第 6 步報錯 `fatal: refusing to merge unrelated histories`
# 請執行下面命令 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
git merge kkt-next --allow-unrelated-histories

在合併時有可能兩個分支對同一個文件都作了修改,這時須要解決衝突,對文本文件來講很簡單,根據須要對衝突的位置進行處理就能夠。對於二進制文件,須要用到以下命令:github

git checkout --theirs YOUR_BINARY_FILES     # 保留須要合併進來的分支的修改
git checkout --ours YOUR_BINARY_FILES       # 保留本身的修改
git add YOUR_BINARY_FILES
相關文章
相關標籤/搜索