从某个特定提交中合并两个git存储库

从某个特定提交中合并两个git存储库,git,github,merge,git-merge,Git,Github,Merge,Git Merge,我必须在存储库之间进行合并。我和A项目的一些人一起工作 一旦我们完成了项目A,我们就开始了项目B 项目B以项目A为基础,因此我们克隆了A,删除了git文件,并开始处理这些文件(我真的不知道为什么要这样做,有很多更好的方法可以做到这一点) 现在我有了项目A和它的所有提交,项目B和一个初始提交,包括整个A和我们在B中所做的工作 是否有可能将提交从存储库B移动到存储库A?(不包括第一个项目A)代表A: a1 --- a2 代表B: b1 --- b2 这里的问题是,a2和b1虽然有相同的内容,但由

我必须在存储库之间进行合并。我和A项目的一些人一起工作

一旦我们完成了项目A,我们就开始了项目B

项目B以项目A为基础,因此我们克隆了A,删除了git文件,并开始处理这些文件(我真的不知道为什么要这样做,有很多更好的方法可以做到这一点)

现在我有了项目A和它的所有提交,项目B和一个初始提交,包括整个A和我们在B中所做的工作

是否有可能将提交从存储库B移动到存储库A?(不包括第一个项目A)

代表A:

a1 --- a2
代表B:

b1 --- b2
这里的问题是,a2和b1虽然有相同的内容,但由于它们有不同的祖先,它们不是相同的提交

这里是我做的一个非常简单的例子,从另一个回购中获取分支
git
使用分离的分支点创建分支:

mkdir a
cd a
echo "a1" > asdf.txt
git init
git add asdf.txt 
git commit -m"a1"
echo asdf2 >> asdf.txt
git commit -am"a2"
cd ..
cp -a a b
cd b
rm -rf .git
git init
git add asdf.txt 
echo b1 >> asdf.txt 
git commit -am"b1"
echo b2 >> asdf.txt
git commit -am"b2"
git log --graph --all --oneline --decorate
cd ../a
git log --graph --all --oneline --decorate
git fetch ../b master:b_branch
git log --graph --all --oneline --decorate
结果:

* 4de3a97 (b_branch) b2
* 34c116e b1
* 4b25afe (HEAD, master) a2
* 7ac42e8 a1
它不会显示在
git log--graph
中,但如果您在此时使用
gitk--all
可视化回购,您将看到历史记录已断开连接

从那里,您可以在
master
上重新设置
b_分支的基础:

git checkout b_branch
git rebase master

您很可能会在
b_分支
(不在
master
中)的第一次提交时遇到冲突,但在这之后,您应该会表现良好。手动解决冲突,
git添加
有问题的文件,然后
git-rebase——继续

听起来像是在寻找。