簡體   English   中英

在GitHub中正確執行拉取請求

[英]Properly doing pull requests in GitHub

我已經閱讀了精美的手冊,並在此處閱讀了很多問題,但是我仍然不確定如何正確地通過請求請求處理補丁。

我在Windows上使用GitHub(但如果需要,可以使用命令行)。

這就是我正在做的事情,以及讓我感到困惑的地方:

  1. 分叉了原始的GitHub項目以創建我自己的項目。
  2. 進行了更改A ,我希望原始項目包括在內。
  3. 發送了對A的請求請求,他們接受了請求,因此它現在是原始項目的一部分。
  4. 進行了更改B ,這對他們沒有用,因此我不希望他們在其版本中包含它。
  5. 做了變更C ,我希望他們使用。
  6. 更多的承諾,其中一些對他們有價值,而有些則沒有價值。

派生/分支/拉取請求/合並到的正確順序是什么?

  1. 確保我具有所有更改的版本。
  2. 確保我可以與上游項目共享某些更改。
  3. 在我的主分支中完成更改B后,所有新分支都將包括它,那么我如何只發送與C相關的更改? 還是我需要基於上游副本中仍然存在的內容以某種方式創建一個新分支?

我主要只是想確保不會引起上游開發人員額外的工作而不得不回頭挑選某些更改。 我越容易使他們修復錯誤,那么每個人都很高興!

分叉項目的通常工作流程是根據上游分支(通常是upstream/master )創建自己的分支(或多個分支),並在其中進行所有工作。 每個分支通常封裝一個功能。 您將發送對您想貢獻的功能的拉取請求。

因此,以您的示例為例:

進行了更改A ,我希望原始項目包括在內。

通常,您需要為更改A創建一個功能部件或錯誤修復分支,然后將其作為請求提交到GitHub,例如:

# Make a branch based off of upstream/master
git checkout -b branch-A upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head

進行了更改B ,這對他們沒有用,因此我不希望他們在其版本中包含它。

如果您不希望項目所有者進行此更改,請將其隔離到其自己的分支,並且不要對其進行拉取請求。 請注意,如果您要執行以下操作,仍可以將分支備份到自己的遠程fork:

# Make a branch based off of upstream/master
git checkout -b branch-B upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork
git push origin head

做了變更C ,我希望他們使用。

C創建另一個分支,就像為A創建分支一樣:

# Make a branch based off of upstream/master
git checkout -b branch-C upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head

2015年更新比賽:

請參閱“ 在GitHub中為Windows創建拉取請求

就像我們的Mac客戶端一樣 ,您現在可以在Windows上使用GitHub ,直接從您的桌面向GitHub或GitHub Enterprise提交拉取請求。

我們也沒有忘記叉子! 如果您派生一個存儲庫,然后想對上游存儲庫做出更改,則適用於Windows的GitHub將跟蹤上游分支。 這意味着您准備好將更改貢獻回去時,便省去了很多麻煩。


(2013年8月)請注意,使用GitHub客戶端( 適用於Windows的 GitHub適用於Mac的GitHub ),很容易:

https://f.cloud.github.com/assets/432536/943708/46a2f12e-0251-11e3-8c46-b1b6636f23d5.png

https://f.cloud.github.com/assets/432536/1160834/a3bbd0be-1fdf-11e3-90aa-13ee15c6c2d8.png

單擊它將:

  • 打開Mac的GitHub或Windows的GitHub,
  • 克隆存儲庫(如果沒有),
  • 自動切換到包含更改的分支,並且
  • 最后在默認應用程序中打開文件進行編輯。

因此,如果您不喜歡命令行...,則還有另一種選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM