Git中按时间顺序完全合并主分支
我有一个简单的存储库,它有两个分支:Git中按时间顺序完全合并主分支,git,merge,rebase,Git,Merge,Rebase,我有一个简单的存储库,它有两个分支:master和branch 分支很久以前就创建了,两个分支上的提交都已累积。 有两种主要的合并方式:merge和rebase merge 我不会描述第一个案例,我对第二个案例感兴趣。 rebase merge将在master的HEAD之后应用branch提交 日志历史被重写了,我正在寻找一种更好的方法来合并年表 假设我有这种存储库。 1是在2之前创建的,2是在3之前创建的,依此类推 7 6 5 4 3 2
master
和branch
分支
很久以前就创建了,两个分支上的提交都已累积。有两种主要的合并方式:
merge
和rebase merge
我不会描述第一个案例,我对第二个案例感兴趣。
rebase merge
将在master
的HEAD
之后应用branch
提交日志历史被重写了,我正在寻找一种更好的方法来合并年表 假设我有这种存储库。
1
是在2
之前创建的,2
是在3
之前创建的,依此类推
7 6
5 4
3 2
1--------1
master branch
我想执行一个关于日期的完美合并:
7 7
6 6
5 5
4 4
3 3
2 2
1--------1
master branch
我知道git rebase-I,有没有办法自动执行此操作?此外,我认为这会给其他本地克隆存储库带来麻烦,因为历史被重写了。
有没有办法安全地执行此操作 我知道git-rebase-I,有没有一种自动执行的方法 我不相信有一种方法可以自动完成这个操作,除非创建一个自定义脚本来处理逻辑(从长远来看可能不值得)
$git rebase-i
(交互式rebase)是一种方法
此外,我认为这将在其他本地克隆存储库中造成麻烦,因为历史被重写了。
有没有办法安全地执行此操作
如果这个存储库和这些提交被发布在某个地方,是的,这可能是一个巨大的问题,对其他人来说是一件痛苦的事情安全的方法是不重写历史。我知道这不是你想要的,但通常情况下,重写git历史并不值得这么做,尤其是在处理提交时,这些提交会被推送到远程存储库,并与其他贡献者一起使用。在
分支中git-rebase-i
重新排序提交然后合并到master
是否会在克隆存储库中造成麻烦?@LeFlou:是的。你在改写历史,每个人都必须将他们所做的与新的历史相协调,新的历史具有广泛而深远的影响。