Description
两个独立的仓库A、B,将仓库B合并至仓库A的分支,并保留A、B的所有commits
例如:将dumped-CompetitiveLin.github.io中的所有提交内容合并至CompetitiveLin.github.io的another分支。
Solution
1. 克隆主仓库代码
1
git clone git@github.com:CompetitiveLin/CompetitiveLin.github.io
2. 添加需要合并远程仓库
1
git remote add base git@github.com:CompetitiveLin/dumped-CompetitiveLin.github.io
此时查看remote: git remote -v
,如下图所示:
如果需要删除remote: git remote rm base
3. 把base远程仓库中数据抓取到本仓库
1
git fetch base
4. 切换到base分支上,命名为dumped
1
git checkout -b another base/dumped
查看branch分支:git branch
5. 切换到main分支
1
git checkout main
6. 合并两个分支
1
git merge another
此时可能出现类似下图fatal: refusing to merge unrelated histories
的报错信息。
解决方法:
1
git merge another --allow-unrelated-histories
在合并时有可能两个分支对同一个文件都做了修改,这时需要解决冲突1,在windows下可以使用Github Desktop解决冲突问题。
7. 提交
1
git push origin another
Problems
A. Permission denied (publickey)
原因:没有配置ssh-key,没有权限2
解决方法:
1
2
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
clip < ~/.ssh/id_rsa.pub
See here.