天天看點

Github全面學習筆記

不如看看官方的指導手冊:

https://guides.github.com/

可以翻譯成中文檢視哦!

====================================================

如何建立分支branch?

  分支可以友善同時處理多個版本的代碼,它是在建立分支的那個時間點上的原始分支的精确副本。

  即可以随意的體驗或者是更改、送出新的分支,直到準備好了就可以安全的和原始分支進行合并。

如何建立Pull Request?

  Pull Request 用于提出對項目檔案的更改,它是一個開始送出讨論的方式,它被經常用于代碼審查中。

  如果是一個人工作的話,那麼 Pull Request 可能沒有太大的幫助,因為可以用學到的 git指令 來更改、推送到我們的主分支中,而不存在其他的分支。

  但是如果在公司項目或者是開源項目這種團隊工作的情況下,會有很多分支。

  github 會知道你已經添加了更改到新的分支中,是以它會智能的建議你啟動 Compare & pull request(比較和拉取請求)

====================================================

如何解決檔案沖突?

  假設在合并 Pull Request 到我們的主分支之前,想對要合并的新分支添加修改,該如何做呢?

  答:隻需到回到 windows 中對新分支中的檔案進行修改再儲存即可,之後打開 cmd控制台 進行 git指令 操作即可。

  示範在 github網站上 送出更改以及在本地計算機副本上送出更改來故意建立一個檔案沖突。

  當我們剛開始使用 git 和 github 時,建議:不要在 github網站上 對檔案做任何修改,而是在本地計算機副本上執行想要的修改和其他工作,

  這樣做有助于我們有效地避免檔案沖突。實際上,我們隻是在本地計算機副本上進行更改且這個項目就是我一個人維護的話,那麼我本地代碼将永遠和 github上 面的代碼同步。

  但是呢,如果是在一個團隊中和他人協作時,他人會在我工作的時候,向遠端分支 push 的一個更改,而這個更改和我們正在本地計算機做的更改是同一個檔案,那麼就會導緻檔案沖突。

  這是一個相當普遍的問題。是以需要我們練習建立和修複沖突。

如何建立組織?

  有時在團隊協作中,當需要用到多個代碼倉庫時,就需要一個 github 的組織了。

  github 組織允許你管理群組織所有的代碼倉庫。一個 github 賬戶可以在不同的組織中工作。

  輸入組織名和郵箱即可,暫時不選付費項目。其餘的不用管,預設下一步就行。

如何建立小組?

  比如:在谷歌工作,有開發小組、營銷小組、營運小組,

  在我所在的開發小組裡面有三個人,我們需要通路相同的代碼倉庫,并且經常需要互相交流。

  這個時候我們就需要單獨的github小組,這樣将有助于改善我們的工作流程。

  通常來說,在github中一個組織可以分為多個小組。小組允許我群組内的成員共享設定權限,不同的組有不同的權限配置設定。

  例如:開發小組有通路開發的權限,比如我有通路要開發軟體的代碼倉庫的權限。

如何在組織中建立代碼倉庫,并如何授予該組織中某個小組權限?

  比如:在 google 這樣的組織中,代碼倉庫應該屬于組織所有的。

  現在在組織中建立代碼倉庫,并且讓開發小組能夠通路到該組織新建立的代碼倉庫。

  給上次在該組織中建立的開發小組開放通路權限。

如何在組織中的代碼倉庫裡,為組織中的小組建立Pull Request(拉取請求/下載下傳請求)?

  當你在一個更大的組織中工作時,良好的建立 Pull Request(拉取請求/下載下傳請求) 的習慣是很重要的。

  許多組織使用 Pull Request 進行代碼審查,當你對代碼進行更改後,你可以邀請你的小組稽核你所做的更改,并提供回報。

  什麼是好的 Pull Request 呢?

  當我們自己一個人工作時,Pull Request 隻是幫助我們自己記住為什麼修改,是以随意送出一個 Pull Request 都沒關系。

  但是當我們作為更大團隊的一部分,重要的是我們要清楚正在改變的是什麼以及為什麼要做出這樣的改變。

  是以我們要填寫下修改的标題和具體說明。

  使用組織的好處是:能夠使用團隊通知功能。

  現在使用一種簡單的方法來確定該組織小組中的所有成員都能看到這個 Pull Request 。

  @heizeTeam/developersteam

什麼是開源軟體?

  開源軟體是所有人都可以修改和補充的軟體,因為開源軟體的 licences 協定允許這樣做。

  Git 版本控制系統就是開源的軟體。

  實際上開源軟體的一個重要組成部分就是添加 licences 文本檔案,licences 告訴我們如何使用我們編寫的代碼。

如何添加licences檔案?

如何找到一個優秀的且可以貢獻的開源項目?

  法一:在 github網站 的主面闆找到 Explore 頁籤 --> See more topics(檢視更多主題) 或者 See more trending repositories(産看更多趨勢庫)。

  法二:

https://libraries.io/

   尋找開源的包、架構和工具...

  注意:在我們使用開源項目之前,首先确定該開源項目的代碼是公開的,可以檢視它的 license 檔案來了解這個開源項目允許使用的程度,其次是檢視自述檔案(READNE.md),了解該開源項目的狀态。

如何為開源項目提bug?

  大家都知道,在解決一個問題之前,必須先了解這個問題,是以建立一個 問題(Issues) 來幫助開源項目是一個很好的方式。

  當我們下載下傳了開源項目的代碼,引入到我的項目中,但是我們會發現這個代碼中存在問題,并不能滿足我的所有要求,可能是在我需要用到的一個函數裡面有一個錯誤,但是我不知道如何修複這個錯誤,

  這個時候可以通過 github 的 Issues 形式來建構一個非常好的問題報告來幫助項目的維護者和其他的貢獻者來完善這個 bug ,進而來完善整個開源項目。

  示範:在我自己的代碼倉庫中的建立問題報告。

  首先要檢查目前的問題清單中是否存在我要送出的問題,可以使用問題搜尋框進行問題關鍵字搜尋。

  注意:不要碰見一個問題就送出,這樣對開源項目并沒有好處。是以我們最好確定要為我們的開源項目建立一個真正有用的問題。

  我們最好把開源項目克隆到我的本地計算機中進行運作,進而發現問題。再到 github網站 上去 New issue。

如何Fork開源項目?

  實際上大多數的開源項目,都遵循着一個大緻的工作流程。

  一個開源項目大緻會有三種人:

    1.負責該項目,是該項目的所有者和維護者。(有pull和push權限)(修複bug)

    2.貢獻代碼,提出問題報告,是該項目的貢獻者。(有pull無push權限)(提出bug修改意見)

    3.隻是想使用該開源軟體,是該項目的使用者。(無pull無psh權限)(發現bug)

  作為項目的貢獻者,沒有push權限,我們想要進行更改,怎麼辦呢?

  答:需要建立 Fork。Fork 可以擷取目前代碼倉庫狀态的一個副本。我們可以通過 Fork 将該項目移動到我們自己的賬戶或者所在的組織中。

  對于該副本我們擁有所有權限,可以進行 pull 和 push 了。當我進行修改完成後,送出給項目的作者,在這兩個代碼倉庫之間使用 Pull requests 。

  如果作者認為我改的還可以,就會将這個 Pull requests 進行合并。

如何在Fork到的開源項目中送出Pull requests?

  我們将 Fork 到的開源項目克隆到我們本地計算機中進行修改,把更改通過 Pull requests 到原始的項目中。

  此時開源項目的維護者就會看到這個 Pull requests 了,如果維護者覺得不錯,就會 合并拉取的請求(Merge pull request)。

  但是并不是所有的 Pull requests 都會被合并,這并不意味着你的修改是有問題的,有時候項目的維護者他就是不鳥你!你也沒辦法!

我的GitHub位址:

https://github.com/heizemingjun

我的部落格園位址:

http://www.cnblogs.com/chenmingjun

我的螞蟻筆記部落格位址:

http://blog.leanote.com/chenmingjun

Copyright ©2018 黑澤明軍

【轉載文章務必保留出處和署名,謝謝!】