记一次Git异常操作:将多个repository合并到同一repository的同一分支

616 查看

为什么会有这需求呢,因为特么需求变动了好几次。。。

1. 现状

当前有三个Repo:

A: workspace/A/.git
B: workspace/B/.git
C: workspace/C/.git

由于只有我一个人开发,并且工程并不复杂,因此所有的Repo都只有一个分支【唯一的优点】。

目标是希望搞成下面这样,且不丢失log

workspace/Total/.git
workspace/Total/A
workspace/Total/B
workspace/Total/C

2. 过程

2.1

cd workspace
mkdir Total
cd Total
git init

2.2

mkdir A
git pull workspace/A
# 然后手动把所有A的文件cp到A文件里
git add -A
git commit -m 'merge A'

2.3

mkdir B
git fetch workspace/B
git merge FETCH_HEAD
# 然后手动把所有B的文件cp到B文件里
git add -A
git commit -m 'merge B'

2.4

mkdir C
git fetch workspace/C
git merge FETCH_HEAD
# 然后手动把所有C的文件cp到C文件里
git add -A
git commit -m 'merge C'

Tips

pull == fetch + merge