github将本地副本推送到远程
我在本地和远程创建了一个分支。为了同步本地和主服务器之间的更改,我从主服务器中提取更改,重新设置到主服务器上,并解决冲突github将本地副本推送到远程,github,Github,我在本地和远程创建了一个分支。为了同步本地和主服务器之间的更改,我从主服务器中提取更改,重新设置到主服务器上,并解决冲突 Changes on master A -- B Changes on local branch C -- D -- E -- F Local branch after rebase A -- B -- C -- D -- E -- F 然而,当我随后试图将本地分支推送到远程分支时。这促使我再次解决冲突。解决冲突后,提交的历史记录将显示出来 C -- D -- E
Changes on master
A -- B
Changes on local branch
C -- D -- E -- F
Local branch after rebase
A -- B -- C -- D -- E -- F
然而,当我随后试图将本地分支推送到远程分支时。这促使我再次解决冲突。解决冲突后,提交的历史记录将显示出来
C -- D -- E -- F -- A -- B -- C -- D --E -- F
根据以下内容重新设定基准后,预期与本地分行相同
A -- B -- C -- D -- E -- F
如何实现上述功能?主机上的更改A--B
重设基础后的本地分支机构
A--B--C--D--E--F
rebase
操作后,本地分支已与远程分支不同
现在我们的目标是:远程分支A--B--C--D--E--F 我有一个“危险”的建议:
1. 确保您有代码备份。
2.像这样重新确定您当地分支机构的基础(我们的目标):
A--B--C--D--E--F
3.
git-push——强制
到远程分支。那么您的远程分支将与您的本地分支类似
--力
非常危险。小心点
希望它能起作用:)主机上的更改A--B
重设基础后的本地分支机构
A--B--C--D--E--F
rebase
操作后,本地分支已与远程分支不同
现在我们的目标是:远程分支A--B--C--D--E--F 我有一个“危险”的建议:
1. 确保您有代码备份。
2.像这样重新确定您当地分支机构的基础(我们的目标):
A--B--C--D--E--F
3.
git-push——强制
到远程分支。那么您的远程分支将与您的本地分支类似
--力
非常危险。小心点
希望它能起作用:)如果遥控器在此期间没有更改,您不应该有冲突 如果确实如此,您需要重新设置基础:
- 我将通过将本地分支重置为F commit来恢复您的第一次重设基础李>
- 用重基拉动
- 推
而且,在重新设置提交的基础后,我会用星号或其他标记来区分它们 如果遥控器在此期间没有更改,则不应发生冲突 如果确实如此,您需要重新设置基础:
- 我将通过将本地分支重置为F commit来恢复您的第一次重设基础李>
- 用重基拉动
- 推
而且,在重新设置提交的基础后,我会用星号或其他标记来区分它们 应该没有必要在这里强行推动任何东西。另外,永远不要使用
--force
而是--force with lease
@Darklighter你是对的。这不是一个好的解决方案。有时我会在自己的项目上执行此操作。但我们在团队工作中不允许这样做。所以最好将其保留为C--D--E--F--A--B--C--D--E--F,而不是强制推送?当我想在自己的项目中隐藏某些内容或破坏远程分支时,我会强制推送。如果不是因为某些特殊的原因,我建议你离开它,而不是强行推。这里不需要强行推任何东西。另外,永远不要使用--force
而是--force with lease
@Darklighter你是对的。这不是一个好的解决方案。有时我会在自己的项目上执行此操作。但我们在团队工作中不允许这样做。所以最好将其保留为C--D--E--F--A--B--C--D--E--F,而不是强制推送?当我想在自己的项目中隐藏某些内容或破坏远程分支时,我会强制推送。如果不是因为某些特殊原因,我建议您离开它,而不是强制推送。本地分支重新设置为主分支,因此它从A开始,但远程分支仍然是C->D->E->F。。。是否要对其进行配置,以使远程分支也重新设置?远程分支如何以不同于本地分支的提交开始?另外,master
是您的本地分支origin/master
是远程分支。当我提取master并创建本地分支时,两个分支上的最后一次提交是Z,那么您在master上有Z,在本地分支上有Z。。随后master变成Z->A->B和本地分支Z->C->D->E->F。每次提交后将本地分支推到远程,远程分支也变成Z->C->D->E->F。现在在本地完成了重新基础,这使它成为Z->A->B->C->D->E->F,但是我不能通过按iforigin/master
是Z来使远程分支保持相同→A.→B和重新基址的master
为Z→A.→B→C*→D*→E*→你可以推。看来情况并非如此。好吧,更清楚一点。。本地分支是从master分支出来的另一个分支名称(当最后一次提交是Z时),称为test。当这个测试分支是Z-C-D-E-F时,它被推送到远程,所以现在尝试将本地/测试推送到源/测试,但是推送到被拒绝本地分支被重新建立在主分支的基础上,所以它从A开始,但是远程分支仍然是C->D->E->F。。。是否要对其进行配置,以使远程分支也重新设置?远程分支如何以不同于本地分支的提交开始?另外,master
是您的本地分支origin/master
是远程分支。当我提取master并创建本地分支时,两个分支上的最后一次提交是Z,那么您在master上有Z,在本地分支上有Z。。随后master变成Z->A->B和本地分支Z->C->D->E->F。每次提交后将本地分支推到远程,远程分支也变成Z->C->D->E->F。现在,rebase是在本地完成的,这使它成为Z->A->B->C->D->E->F,但我无法通过