Git 重定基址、一些本地更改和新的远程提交
我将某个分支的Git 重定基址、一些本地更改和新的远程提交,git,git-merge,rebase,Git,Git Merge,Rebase,我将某个分支的X重定为develope,但我没有推动它(远程回购不知道重定) 接下来,我做了一些改变。同时,我的同事也推动了发展。 我也希望现在(在我的本地基础和一些变化之后)能够推动发展。此外,我希望将此重基和更改平坦化为一次提交(我知道squash,但在这种情况下我不能使用它) 我该怎么办?我认为是这样的: git add --update git commit -m "rebase + my changes" git fetch develop git rebase origin/d
X
重定为develope
,但我没有推动它(远程回购不知道重定)
接下来,我做了一些改变。同时,我的同事也推动了发展。我也希望现在(在我的本地基础和一些变化之后)能够推动发展。此外,我希望将此重基和更改平坦化为一次提交(我知道
squash
,但在这种情况下我不能使用它)
我该怎么办?我认为是这样的:
git add --update
git commit -m "rebase + my changes"
git fetch develop
git rebase origin/develop
(solving potential conflicts)
?git commit?
git push
我说的对吗?您给出的命令序列很接近,但它不会为rebase+本地更改创建一个提交。首先,您可能需要获取,下面的图表将假定您已将远程引用与远程repo保持同步。所以,如果有什么东西你还没有拿,就去拿吧。然后: 听起来好像你有
A --- B --- C <--(develop)(origin/develop)
\
X1 --- X2 --- X3 <--(branch_x)
您还对本地的develope
进行了一些更改
(您建议的命令列表以add
和commit
开头,因此我认为这些命令甚至还没有在本地暂存…)
(不确定为什么要使用--update
,但只要不想添加新文件,就可以了。)
这给了你
A --- B --- C --- D <--(origin/develop)
\
X1X2X3Y <--(develop)
A--B--C--D的可能重复项
A --- B --- C --- D <--(origin/develop)
\
X1' --- X2' --- X3' <--(develop)
\
o <--WORKING TREE
git add --update
git commit
A --- B --- C --- D <--(origin/develop)
\
X1' --- X2' --- X3' --- Y <--(develop)
git checkout origin/develop
git merge --squash develop
# handle conflicts
git commit -m "rebase + my changes"
git branch -f develop
A --- B --- C --- D <--(origin/develop)
\
X1X2X3Y <--(develop)