2016-12-27 38 views
0

當涉及多個人時,我經常在使用git時感到困惑。使用它爲我自己的項目,我從來沒有使用高級功能,只推送到GitHub公開分享。我不確定如何解決在社區中工作的問題。Git Group Workflow

  • 我參加的項目,並在GitHub上創建自己的叉子
  • 我選擇的問題解決和創建一個分支「問題#94」
  • 我的代碼並提交,直到我很高興
  • 創建一個最終提交,對什麼是解決了註釋,使用Github上refernce標籤引用問題(修正了#94,#關閉94等)

  • 和衍合壁球我的分支,以保持項目的清潔

  • 向項目負責人發出拉請求

這是我不確定的事情。拉取請求可能需要幾天才能合併。如果我想繼續發展,我該去哪裏?

我應該退出我的分支併爲新問題打開一個新分支嗎?

如果我正在處理某個問題,並且主分支有重要更新,該怎麼辦?我是否會拉新的主人,並將這些更改與新主人的新分支區分開來?

一旦我的拉請求被接受,我可以拉新的主人並放棄我的本地分支,但同步跨兩個回購所有這些令人困惑。

什麼是普遍接受的工作流程,是否有我可以釘在我的cheatsheet的寫作?

回答

1

您發出拉請求的過程是正確的。對於您的問題:

  1. 後您發出拉入請求合併問題#94的掌握和它沒有批准,並且希望繼續在當地的問題#94分支發展。所以您可以自由地開發它,當您更新一些新的東西時,您可以再次推送分支,它會自動更新之前發出的拉取請求。當項目負責人查看您的請求時,他會發現您推送的第一個和第二個更改。
  2. 如果是相關的錯誤,您可以開發第#94分支。否則,你應該開發一個新的分支。
  3. 在您的本地倉庫中,您有一個遠程貨叉回購貨源,您還應該添加遠程倉庫本身以供您比較是否已更新主分支。如果主分支已更新,則只需將其提交到本地主分支,然後重新綁定其頂部的工作分支。步驟如下:

git remote add origin2 <URL for the repo>. git fetch origin2 git diff master..origin2/master

如果有具有輸出,這意味着在主分支已經更新,所以你應該做的:

git checkout master 
git pull origin2 master 
git checkout issue#x 
git rebase master 
  • 常見的工作流程是確保在將新創建的問題#x分支推送到分叉回購之前,您將通過git fetch origin2 mastergit diff master..origin2/master顯示檢查分叉回購是否最新。如果沒有輸出(本地主分支是最新的),所以你可以推動你的問題#x分支併發出拉請求。
  • +0

    感謝您的明確答案。我使用rebase來壓扁,但是在閱讀手冊頁時,它明確規定了快速轉發分支點。現在我只需要記住將我的分支推送到遠程,所以我停止創建殭屍大聲笑。 – uMinded