<p id="qitwt"></p>
      1. <object id="qitwt"><strong id="qitwt"></strong></object>
        <p id="qitwt"></p>
        <li id="qitwt"></li>
        <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
        <p id="qitwt"><label id="qitwt"></label></p>
      2. <acronym id="qitwt"></acronym>
        <p id="qitwt"></p>
        免費開源的iOS開發學習平臺

        GitHub:7-團隊合作(GitHub Flow)

        GitHub Flow簡介

        GitHub除了能夠對版本進行管理之外,更加重要的價值在于團隊協作,絕大多數軟件項目都不是一個人獨立完成的,而是需要團隊合作,在團隊合作中建立一套高效的協作方式就變得尤為重要。Github Flow是Github 多年來總結出來一套自己的團隊協作流程,簡單而且強大,網站上的各個功能都是圍繞著這個流程來開發的。

        GitHub Flow包含有如下五個標準環節:

        • 第一步,創建分支。

        • 第二步,創建新版本,即多個commit。

        • 第三步,發起“拉取請求”(Pull Request)。這里提到了一個新的概念Pull Request(簡稱PR)。PR 在整個 Github Flow 流程中占有核心位置, PR 的目的就是討論,或者說是邀請項目成員進行代碼審核,經過討論無誤后,代碼可以合并到master版本中。

        • 第四步,討論和代碼審核。一旦開啟了一個 Pull Request,審核你修改的人或團隊會來提出問題和評論。有可能是代碼風格符不符合項目規范, 也或者代碼忘了單元測試,也可能各方面都沒問題。Pull Request 就是為了鼓勵這種類型的討論而設計的。每一個 PR 都是開發歷史上的一次小事件,很長時間過去之后,再看看當時的 PR 就可以看到當時為什么要開發這個功能,大家都是什么意見,都寫了哪些代碼,所以是項目發展的珍貴資料。從這個角度來說,即使一個 PR 沒有被 merge 進 master ,那它里面的代碼和討論的內容也會是非常有意義的嘗試,也可能在未來會有很大的參考價值。

        • 第五步,合并分支。一旦大家審核了你的 Pull Request 并且所有代碼通過了測試,就是可以把你的代碼合并到主分支了。一旦合并之后,Pull Request 會保留代碼的歷史修改記錄。因為它們是可搜索的,它們讓人可以回到過去,去理解為什么做這個決定以及怎樣做的決定。

        GitHub Flow使用實例

        接下來我們通過一個實際的示例展示一下GitHub Flow的整個過程。

        首先,在我們的本地倉庫中,使用GitHub客戶端創建一個名稱為“修改README”的分支。

        修改README.md文件,在GitHub客戶端中,我們可以查看修改的內容,然后提交到當前分支。

        發起一個Pull Request,點擊GitHub客戶端右上角的【Pull Request】按鈕,發起PR。在提交PR的界面,我們可以選擇希望合并的分支。如下圖所示,我們希望把“修改README”分支合并到master分支上。

        假如該項目還有一個開發者,在GitHub的Web端就可以看到其他開發者發起的PR,并且可以查看該PR中涉及的代碼修改內容,并給出自己的評論。如果審核通過,可以點擊【Merge pull request】按鈕,合并到master分支上。

        合并成功后,我們可以看到合并結果,并且可以點擊【Delete branch】按鈕刪除分支。


        青青草国产成人久久_jizzjizz日本护士高清_亚洲 另类 国产 另类_99久久免费精品色老
        <p id="qitwt"></p>
          1. <object id="qitwt"><strong id="qitwt"></strong></object>
            <p id="qitwt"></p>
            <li id="qitwt"></li>
            <p id="qitwt"><del id="qitwt"><xmp id="qitwt"></xmp></del></p>
            <p id="qitwt"><label id="qitwt"></label></p>
          2. <acronym id="qitwt"></acronym>
            <p id="qitwt"></p>