2017-06-22 71 views
0

由於我面對這個困難很多,我想知道git是否有一個妄想。如何從Git中的特性分支合併上游/主機到原始/主機?

  • 我有一個上游回購。
  • 我已經僞裝了,並命名爲origin
  • 我有一個master分支。
  • 我有一個分支叫做feature_1

我在feature_1分支在開發過程中。我下面這些步驟時,我想變基它:

$ git checkout master 
$ git fetch upstream // To see is there any change although pull works as well 
$ git merge upstream/master // in case there is a change 
$ git push origin/master 
$ git checkout feature_1 
$ git rebase master 

所以,我知道我能夠從feature_1分支上游獲取,但我不知道我能夠從feature_1分支合併upstream/masterorigin/master,然後變基它(沒有離開feature_1分支)?

任何幫助,將不勝感激。謝謝。

回答

0

如果你想變基在master分支的最新遠程版本feature_1,你可以簡單地做到以下幾點:

git checkout feature_1  # switch to feature_1 
git fetch upstream   # update upstream/master (and other tracking branches) 
git rebase upstream/master # rebase on latest master 

我不知道什麼遠程origin在這裏的意思,我也不知道你打算做什麼git push origin/master。這看起來像是在嘗試推送一個遠程跟蹤分支,這可能不是你想要的。

在任何情況下,它可能重新綁定最新的遠程分支而不會實際離開該分支。

+0

謝謝Tim,'Remote'是公司的回購。 「Origin」是我爲了發送PR而分叉的。 – Hesam

+0

我再次不知道'git push origin/master'是什麼意思,但我不認爲這會改變我的答案的大部分。 –

+0

啊,你說得對。雖然我需要它來記錄更改(用於創建新分支),但這並不是必需的。謝謝。 – Hesam

0

我們可以在不同的工作樹中合併origin/mastermaster(這需要最新版本的git,請參閱man git-worktree)。

worktree1 <feature_1> $ 
worktree2 <master> $ git fetch && git merge origin/master 
# this rebases onto new master: 2 worktrees share one set of branches 
worktree1 <feature_1> $ git rebase master 
+0

謝謝Jokester。我想你是從'worktree1 $'退出''worktree2 $'。我想知道我能否從'feature_1'分支執行'git fetch && git merge origin/master'而不檢出。 – Hesam

+0

這不需要結賬(我假設你想避免結賬)。 'worktree1'和'worktree2'分別是2個分支的2個工作樹(即目錄)。 – Jokester

相關問題