重新调整本地分支并将其推送到github
在Github上,我有:重新调整本地分支并将其推送到github,git,github,pycharm,Git,Github,Pycharm,在Github上,我有: 主分支,比如说github\u主分支 还有一个个人(远程)分支,比如说它github\u personal\u分支 过去我是从github克隆的 我签出了github\u personal\u branch(使用Pycharm)并创建了一个同名的本地分支(但假设它是local\u personal\u branch) 从local\u personal\u分支我推到github\u personal\u分支 现在,在github\u personal\u bran
- 主分支,比如说
github\u主分支
- 还有一个个人(远程)分支,比如说它
github\u personal\u分支
- 过去我是从github克隆的
- 我签出了
(使用Pycharm)并创建了一个同名的本地分支(但假设它是github\u personal\u branch
)local\u personal\u branch
- 从
我推到local\u personal\u分支
github\u personal\u分支
github\u personal\u branch
上,我在github\u master\u branch
的后面和前面进行了提交
我想将更改从github\u master\u分支
获取到我的
local\u personal\u分支机构
,修复冲突,然后将其推送到
github\u个人分支机构
到
,从
字段逻辑本地个人分支上可用
- 结帐
local\u personal\u分行
- 获取以更新源代码
- 根据需要,重新设置参考/遥控/原点/github\u master\u分支的基础
本地个人分支机构
”是个人的(对您而言):您可以重新设置它的基础,并强制推送它任意多的时间,因为您是唯一一个处理它的人
rebase的想法是让未来的拉请求变得不那么容易接受,因为您的local\u personal\u分支
提交将在最新的origin/github\u master\u分支
的基础上重新设置,这意味着接受这样的PR将导致简单的快进合并:没有冲突
另外,如上所述,将master
合并到功能分支中不被视为最佳实践:您(通常)合并到master
,而不是从它合并。请参见“虽然我对CLI rebase进行了大量的实验,但我从未掌握如何使用IntelliJ的rebase选项^^ 据我所知,您有以下设置:
github/master
v
A-B-C---D-E
\
\-F-G
^
personal,
github/personal
您也应该在某个地方有一个主节点
分支(本地主节点)。如果您不确定此设置,请向我们提供以下命令的输出:
git日志--oneline--decoration--graph local\u personal\u branch github\u personal\u branch master github\u master\u branch
您需要将您的个人分支重新设置到master上,以获得以下图表:
github/master
v
A-B-C---D---E---F'---G'
^
personal
github/personal
因此,命令是:
git-rebase——在github/master C个人版上
吉特推力
要解释它:
- 您希望将commit
和C
之间的提交放在当前的personal
分支上github/master
- 您将新的个人分支推送到github。由于rebase不会创建线性历史(个人(F,G)的一些先前提交丢失,并被新的“相同”提交(F'和G')替换),因此需要强制推送
origin
,而不是github
(请参阅git remote-v
的输出),因此您应该在上一次提交中将对github
的引用替换为origin
。C
字母必须替换为master
和personal
之间最后一次公共提交的哈希数
种类。使用合并而不是重定基址,如下所示:
github\u master\u分支机构
合并到您的local\u personal\u分支机构
。(远程是指远程上该分支的状态;您可能希望首先更新本地主机并合并该主机,但请确保使用的是最新版本)local\u personal\u分支机构上
)local\u personal\u分支机构
推到github\u personal\u分支机构
现在,personal_分支和master之间的区别应该只是对personal_分支所做的更改。这将使以后更容易将其合并到master中。请提供有关这两个分支状态的更多信息。你的目标是什么?完成后,您希望在您的分支上拥有哪些代码?您需要将更改从github\u master\u分支拉到本地\u personal\u分支,修复问题(合并问题),并将强制推送到github\u personal\u分支。无论如何,重新定基需要强制推,顺便说一句,既不强制推,也不重新定基都不是一个好方法。尽量避免以后出现这种情况。@用户我已经编辑了我的答案。在这种情况下,不需要将
--on
放到上:一个简单的git-rebase-github/master
就足以将personal
移动到github/master
上@VonC是的,在这种简单的情况下,--on
是多余的,与C
参考类似。一个简单的git-rebase-origin/master
就可以完成这项工作,但更详细的描述可以更好地掌握rebase
的功能:从何处到何处,到何处