Php Git重新基址主冲突
我有一些冲突的分支时,重新调整主到它 情况是: 分支主机,进行一些更改,提交所述更改。 结帐师傅,做一些更改,提交所说的更改,结帐分行-1。 尝试重新设置主冲突的基础 现在我有其他开发人员以类似的方式工作 Master在所有repo上保持同步,包括web服务器,我不希望Master的历史被更改Php Git重新基址主冲突,php,git,merge,webserver,rebase,Php,Git,Merge,Webserver,Rebase,我有一些冲突的分支时,重新调整主到它 情况是: 分支主机,进行一些更改,提交所述更改。 结帐师傅,做一些更改,提交所说的更改,结帐分行-1。 尝试重新设置主冲突的基础 现在我有其他开发人员以类似的方式工作 Master在所有repo上保持同步,包括web服务器,我不希望Master的历史被更改 如果我解决了过去与某个点冲突的重基冲突,如果我签出主控形状并将其与分支合并,主控形状的历史会被更改吗?或者这些冲突解决方案会应用于我合并的所有工作的顶部吗?如果你重基,无论重基到哪个分支,您正在更改存储库
如果我解决了过去与某个点冲突的重基冲突,如果我签出主控形状并将其与分支合并,主控形状的历史会被更改吗?或者这些冲突解决方案会应用于我合并的所有工作的顶部吗?如果你重基,无论重基到哪个分支,您正在更改存储库的历史记录。这个想法是,当其他开发人员在你推后从say origin拉master时,他们的回购协议也将是最新的 需要明确的是:在重定基址时合并冲突不会改变master的历史记录。将重定基址作为合并方法 如果不想更改主控形状的历史记录,则不能作为合并方法重新设置基准。默认的git合并行为对您来说应该可以正常工作,不管是否存在冲突
git checkout master
git merge branch-1
如果重新设置基础,无论重新设置基础到哪个分支,都会更改存储库的历史记录。这个想法是,当其他开发人员在你推后从say origin拉master时,他们的回购协议也将是最新的 需要明确的是:在重定基址时合并冲突不会改变master的历史记录。将重定基址作为合并方法 如果不想更改主控形状的历史记录,则不能作为合并方法重新设置基准。默认的git合并行为对您来说应该可以正常工作,不管是否存在冲突
git checkout master
git merge branch-1
想象一下你现在的情况:
- A - B - C - D
\ ^
- X - Y master
^
branch1
运行git签出branch1;git rebase master将从branch1移动提交,以便将它们应用到master分支的顶部:
- A - B - C - D - M
\ / ^
- X - Y - - master
^
branch1
这不会更改master,但会以两种方式更改branch1:
通过将commit X的父级从A更改为D,您将更改commit X的ID,事实上,就Git而言,它现在是一个全新的commit,因为X有一个新的ID,Y有一个新的父级,所以Y也会获得一个新的ID,如果分支上有更多的提交,依此类推。
您需要执行的任何冲突解决都将更改提交的内容。
如果您已经将branch1推送到远程存储库,那么重新设置其基础是一个非常糟糕的主意;改变已经共享的历史只会导致问题
假设您还没有按下branch1,那么您可以使用git checkout master将其合并到master中;git merge branch1,这将导致master被快速转发到commit Y。这将为您提供一个整洁的线性历史,而无需更改master:
如果您已经推了branch1,那么您应该避免重新基址,使用合并,而不是使用git checkout master;git merge branch1,它不会更改它们中任何一个的历史记录,但会在主分支上创建此图中标记为M的新提交:
- A - B - C - D - M
\ / ^
- X - Y - - master
^
branch1
想象一下你现在的情况:
- A - B - C - D
\ ^
- X - Y master
^
branch1
运行git签出branch1;git rebase master将从branch1移动提交,以便将它们应用到master分支的顶部:
- A - B - C - D - M
\ / ^
- X - Y - - master
^
branch1
这不会更改master,但会以两种方式更改branch1:
通过将commit X的父级从A更改为D,您将更改commit X的ID,事实上,就Git而言,它现在是一个全新的commit,因为X有一个新的ID,Y有一个新的父级,所以Y也会获得一个新的ID,如果分支上有更多的提交,依此类推。
您需要执行的任何冲突解决都将更改提交的内容。
如果您已经将branch1推送到远程存储库,那么重新设置其基础是一个非常糟糕的主意;改变已经共享的历史只会导致问题
假设您还没有按下branch1,那么您可以使用git checkout master将其合并到master中;git merge branch1,这将导致master被快速转发到commit Y。这将为您提供一个整洁的线性历史,而无需更改master:
如果您已经推了branch1,那么您应该避免重新基址,使用合并,而不是使用git checkout master;git merge branch1,它不会更改它们中任何一个的历史记录,但会在主分支上创建此图中标记为M的新提交:
- A - B - C - D - M
\ / ^
- X - Y - - master
^
branch1
好的,但如果我要将master重设为一个分支,这将改变该分支的历史,并且该重设存在冲突。如果我将该分支合并到master上,git将如何提交和解决冲突?它会更改主分支以匹配其在分支上的历史记录,还是会在最后将这些更改作为新的提交应用?它会将其与更新的节点图一起拉入。Rebase将改变提交节点的顺序,以便在一行中插入提交。现在,当从另一个用户/分支提取此信息时,
它还更新了该分支。我个人在一个12人的团队中,我们在自己的分支中重新设置基础,并在将分支添加到主分支时进行git合并。这对usOK来说非常有效,但如果我将master重新设置为分支,这将改变该分支的历史,并且该重新设置存在冲突。如果我将该分支合并到master上,git将如何提交和解决冲突?它会更改主分支以匹配其在分支上的历史记录,还是会在最后将这些更改作为新的提交应用?它会将其与更新的节点图一起拉入。Rebase将改变提交节点的顺序,以便在一行中插入提交。现在,当从另一个用户/分支提取此信息时,它也会更新该分支。我个人在一个12人的团队中,我们在自己的分支中重新设置基础,并在将分支添加到主分支时进行git合并。这对我们很有效