2016-03-31 72 views
0

我分叉了一個github存儲庫,並對主分支做了很多更改。針對我的要求有許多更改,如果我爲所有更改提交拉取請求,它將不會被存儲庫的原始所有者接受,因爲許多更改都是​​特定於我的要求的。在不影響現有分支的情況下創建新分支

但是我需要提交一些可能被接受的功能,並且對其他用戶也很有用。所以現在我想創建一個新的分支,儘管我已經在我的賬戶中有一個分叉的倉庫。我不想影響現有的分支。

在新的分支中,我可以添加特定的更改並創建一個拉請求。

我該如何實現它?

回答

3

不需要新叉!

您不會從fork F請求原始O,而是從F的分支a到O的分支b!

您創建了與原始回購處於同一級別的新分支(例如,「PRQ_feature-you-added」),然後重新應用您所做的更改並將其分享到此分支。
然後,您從此分支向原始回購協議中的請求提出請求。

這實際上符合一般良好實踐:始終爲拉取請求創建新的分支。

代碼:
others_username是持有您想要貢獻的原始存儲庫的用戶名。
their_branch是您要提取請求的回購分支,通常是默認的master
$COMMIT_ID是您要共享的提交的ID。雖然可能存在需要解決的合併衝突。
此外,您可能想要使用rebase而不是cherry-pick,具體取決於您提交的方式和內容。
origin是內部遠程名稱。您的存儲庫參考,它可能會有所不同,但如果您直接克隆它,這是默認值。

git remote add other_repo github.com/others_username/project_name 
git fetch other_repo 
git checkout -b PRQ_new-feature other_repo/their_branch 
git cherry-pick $COMMIT_ID 
git push --set-upstream origin PRQ_new-feature 

在Web界面中,從您的分支創建一個拉取請求。

但是你應該讀一下git(而不是GitHub)分支和分支是如何工作的。
我喜歡「thinklikeagit」(只是谷歌)。

相關問題