簡體   English   中英

為什么我需要在復位中使用Origin / Master而不是Master

[英]why I need to use origin/master instead of master in rebase

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

我的理解是,origin / master是遠程master分支路徑名稱,而master是我的本地分支名稱。 我需要將多個本地提交合並為一個,然后使用最新時間戳將其提交到遠程服務器。 以下三個步驟很適合我,但是我不明白為什么我需要使用origin / master而不是master

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

無需使用origin / master即可將多個提交合並為一個。 但這是執行此操作的一種好方法,以避免必須覆蓋原點的歷史記錄。

例如,如果您的歷史記錄如下:

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

您的主節點指向5abcde ,原點/主節點指向3abcde 如果運行git rebase master則將當前位置(可能已經是master)重新設置在同一位置上,實際上什么也沒做。

運行git rebase origin/mastergit rebase 2abcde將在提交(2)之后應用您擁有的提交(3,4,5)-如果指定了標志-i則可以選擇squash / fixup / skip / reword / drop / pick分別提交3,4,5。

實際上,Git文檔對解釋rebase的工作原理非常有用: https : //git-scm.com/docs/git-rebase

也許有助於進一步了解Git在遠程方面的工作原理: https//git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM