为什么我需要使用起源/主人而不是主人在rebase

为什么我需要使用起源/主人而不是主人在rebase

问题描述:

$ git --version 
git version 1.7.1 
$ git branch -avv 
* master    017Fcc0 [origin/master] xxxx 
    remotes/origin/HEAD -> origin/master 

我的理解是,origin/master是远程主分支路径名称,master是我的本地分支名称。我需要将多个本地提交合并为一个,然后使用最新的时间戳提交给远程服务器。以下三个步骤对我很好,但我不明白为什么我需要使用原产地/主人而不是主人为什么我需要使用起源/主人而不是主人在rebase

a) git rebase --ignore-date origin/master 
    b) git rebase -i origin/master 
    c) git push origin master:master 
+0

的可能的复制[ “git rebase origin”与“git rebase origin/master”](https://stackoverflow.com/questions/5963597/git-rebase-origin-vs-git-rebase-origin-master) – phd

你并不需要使用原产/主,以多次提交合二为一。但这是一个很好的方法,以避免重写原始记录。

举例来说,如果你的历史看起来像:

5abcde Commit 5 [master] [HEAD] 
4abcde Commit 4 
3abcde Commit 3 
2abcde Commit 2 [origin/master] 
1abcde Commit 1 

你主人点5abcde和来源/硕士点3abcde。 如果您运行git rebase master,则将您当前的位置(可能已经是主人)重定位在相同的位置,实际上什么都不做。

运行git rebase origin/mastergit rebase 2abcde提交(2)后,将适用,你有(3,4,5)在提交 - 如果你指定标志-i让您选择压扁/修正/跳/改写/降/分别选择提交3,4,5。

Git的文档恕我直言,实际上是在解释如何变基工作非常好:https://git-scm.com/docs/git-rebase

也许它可以帮助阅读了一下更多的Git是如何与问候工程,以遥控器:https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

+0

原点/主点到2abcde。 – q0987