將您的提交(或提交集)複製到新提交(或一組提交),該提交(或提交集)是在其他人提交的最新提交之後提交的。
這有點令人困惑,所以這可能有助於在這裏有三個人的名字。您有自己的承諾,我們可能會將其標記爲V
。有(至少)兩個其他人蔘與:您的僱主E
,以及您的上游U
。
你的上游爲最新:
...--E--F--G--H--I <-- master (in U)
你克隆了自己的資料庫,讓他們所有的提交,然後加入自己:
...--E--F--G--H--I <-- upstream/master (in V)
\
J--K--L <-- master (in V)
同時你的僱主的背後是:
...--E--F--G <-- master (in E)
如果您提出拉動請求,您的請求說「通過L
承擔責任」。對於U先生,這是您的三項承諾,J--K--L
,因爲他的master
結尾爲I
。對E先生來說,這是你的三項承諾加上U先生的兩項承諾。
所以,如果你現在你原來提交複製到G
之後而來的是新的提交:
J'--K'--L' <-- anotherbranch (in V)
/
...--E--F--G--H--I <-- upstream/master (in V)
\
J--K--L <-- master (in V)
你現在可以發送到E先生,他拉犯L'
的請求。由於他的提交字符串在提交G
處結束,那麼將會發送給他J'
,K'
和L'
。
E先生最終可能需要更新以匹配U
。當他這樣做時,他必須決定如何處理這一事實,即他最終以結尾J'--K'--L'
和J--K--L
。您也必須決定是否保留您的提交副本。
注意:你可以做到這一點提交使用git cherry-pick
複印操作(這是相當簡單),或使用git rebase
(這是一種自動化摘櫻桃的,並在最後一個最終git reset
移動分公司的名字,以便「忘記」原始提交以支持新副本)。櫻桃選擇在概念上更簡單,並且由於此特定操作是「倒退」(backporting),因此除非其他一些(不可預見的/未披露的)考慮因素優先於此,否則我會親自堅持這一做法。
欣賞解釋:)現在更容易理解 –