Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
github将本地副本推送到远程_Github - Fatal编程技术网

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来恢复您的第一次重设基础
  • 用重基拉动
为什么本地分支以C开头,远程分支以A开头,它们没有共同的祖先?

而且,在重新设置提交的基础后,我会用星号或其他标记来区分它们

如果遥控器在此期间没有更改,则不应发生冲突

如果确实如此,您需要重新设置基础:

  • 我将通过将本地分支重置为F commit来恢复您的第一次重设基础
  • 用重基拉动
为什么本地分支以C开头,远程分支以A开头,它们没有共同的祖先?


而且,在重新设置提交的基础后,我会用星号或其他标记来区分它们

应该没有必要在这里强行推动任何东西。另外,永远不要使用
--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,但是我不能通过按if
origin/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,但我无法通过