2010-02-16 176 views
9

我有這個(GIT回購):(git):如何從上游分支提交特定提交?

A--B--C--D ->master 
    \--E ->dev 

而且我要帶只承諾D分支devD不依賴於C),使:

A--B--C--D ->master 
    \--E--D' ->dev 

但d '合併後不應添加到主人:

A--B--C--D--E' ->master 
    \--E--D'/ ->dev 

這是因爲我想帶上而不必污染dev新文件C(代表另一個大合併)增加。
我猜我需要使用git rebase,但我無法猜測如何。

回答

10

你想用git cherry-pick更新。我假設你的遙控器被命名爲「原點」(但用遠程回購的真實名稱替換「原點」)。我假設你有兩個當地分行,分別命名爲masterdev。我會假設提交D在origin/dev。你可以用下面的摘櫻桃d:

$ git fetch origin    # Assuming the upstream remote's name is "origin" 
$ git checkout dev    # Check out your local "dev" branch 
$ git cherry-pick $COMMIT_D # Replace "COMMIT_D" with the hash for commit D 

現在,你只需要在dev提交d的變化。