2017-10-05 165 views
0

我正在审阅git rebase和git merge的文档。我几乎明白了差异和重新定义,但我有一个疑问。重新分配对当前分支或重新设置的分支有影响吗?重新分支chnage当前分支或我们重新分支的分支

例如:

我有一个分支new-branchmaster签出,既masternew-checkout分支机构的进展,现在new-branch推动一些提交之后,我想与原籍主变基它。

my-branch

git rebase master 

运行此命令我做了垫底,我知道,git会放my-branch一些新提交当前master分支的头顶。

现在我的问题是,如果我会强制从my-branch推,那么它会改变代码my-branch或它将改变远程master分支。

希望你明白我的问题,请让我知道是否有任何混淆在我的问题。任何帮助,将不胜感激。

+0

git rebase master,会把主分支上的提交放在'my-branch'之上而不是你正在说的... –

+0

你在哪个分支上推? –

+0

我想在与主人重新绑定后推“my-branch” – Vikash

回答

1

git rebase master将更改提交历史new-branch

如下图,假设原来提交历史是:

A---B---C---G---H master 
     \ 
      D---E---F my-branch 

执行git rebase master后,它会重订的变化从my-branchmaster分支。而提交历史看起来像:

A---B---C---G---H---D'---E'---F' my-branch 
       | 
       master 

如果强行推my-branch远程(git push -f origin my-branch),远程my-branch将改变版本F'如上图。

+0

主分支什么时候变成'F'?如果我检查出主人并做混帐推主,那么它会改变像'F'? – Vikash

+0

'master'分支没有改变,它仍然指向提交'H'。如果你再次推'master'分支,它会显示'所有东西都是最新的'。 –