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