2017-08-31 46 views
0
$ 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

回答

3

你並不需要使用原產/主,以多次提交合二爲一。但這是一個很好的方法,以避免重寫原始記錄。

舉例來說,如果你的歷史看起來像:

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

相關問題