git 合并非关联分支

面对的场景:现在有三个仓库,一个是本地的仓库1,第二个是和仓库1关联的在github上的仓库2,第三个是把仓库1拷贝到一个无网络环境中持续开发一段时间的仓库3.

分析

基本想法是把仓库3作为仓库1的远程仓库,然后在仓库1上pull。
git 合并非关联分支_第1张图片
但是添加远程仓库的时候报错了。
再一想能不能直接pull这个仓库3呢?
git 合并非关联分支_第2张图片
不能合并两个没有关联仓库。
加上–allow-unrelated-histories就可以了,合并之前先开了一个新的分支,在新分支上合并
git 合并非关联分支_第3张图片
下面就是解决冲突了。
最后的结果就是下面这样了
git 合并非关联分支_第4张图片

如果想要修改另外分支提交的用户名和邮箱,可以参考下面的链接。
git重写历史
git bash中输入下面的内容,把author 和 committer都改掉

git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="wu ming"
CORRECT_EMAIL="[email protected]"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

你可能感兴趣的:(git,git)