Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git中按时间顺序完全合并主分支_Git_Merge_Rebase - Fatal编程技术网

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:是的。你在改写历史,每个人都必须将他们所做的与新的历史相协调,新的历史具有广泛而深远的影响。