2015-05-12 75 views
1

我熟悉git的基礎知識,但不是高級的東西,我在這裏有點迷路。雖然我在命令行上執行簽出和提交和克隆,但我確實使用Github用戶界面來分叉和合並其他回購。Get Origin Repo's Master作爲我在Git中的分支的一個分支

所以我的問題是這樣的:後來我克隆了一個回購,我們稱之爲Upstream,並做了一些更改。讓我們打電話給我的分支Downstream.我提交了我的代碼作爲拉取請求,但Upstream不希望我的更改。哦,現在我爲自己和其他一些想要我添加的功能的用戶維護Downstream。我時不時地將Upstream/master的變更提交到Donwstream/master

現在,我想在Upstream上做更多的工作,並再次將我的更改作爲拉取請求提交給他們。但是,我的master已經表示他們不想要的更改,所以我想將其master重新分配到Downstream(即Downstream/upstream-master)的新分支中。我將如何做到這一點?

回答

1
  1. 如果您的存儲庫當前沒有上游遠程設備,則需要git remote add upstream https://github.com/Foo/Bar.git,然後使用git fetch upstream
  2. 從上游獲取代碼:git checkout upstream/master
  3. 創建一個新的本地分支指向代碼,您剛剛checkout出來:git checkout -b upstream-master
  4. [可選]櫻桃採摘從這個舊的分支工作到你剛纔提出的一個。 git cherry-pick abc123

爲簡單起見,我將這些作爲單獨的命令留下,但可能有將它們組合成單個命令的方法。

+1

前兩個可以合併爲'git checkout -b upstream-master upstream/master'。 – chepner

+0

謝謝。對於將來遇到這個問題的任何人,在執行上述操作之前,需要執行以下操作:'git remote add upstream https:// github.com/Foo/Bar.git' then'git fetch upstream' @ mkasberg,你可以添加到你的答案? :) – Pharylon

+0

作爲第一步添加。 – mkasberg

相關問題