本文旨在幫助沒有接觸過Git的同窗使用Git以及GitHub的基本功能,適用於初學者。php
因爲Git是一門工具,合理的學習過程,應該是先知道怎麼用,再去理解倉庫、分支、衝突等等概念。所以本文把各類操做按照新手的學習曲線進行編排,方便初學者按部就班。html
因爲內容比較多,一次寫不完,故作成連載,之後還會更新其它內容。git
推薦閱讀:
菜鳥教程 https://www.runoob.com/git/gi...
廖雪峯的Git教程 https://www.liaoxuefeng.com/w...
分支學習神器(強烈推薦) https://learngitbranching.js....
上面的教程學好了,本文就不必看了,哈哈哈
前往:https://git-scm.com/downloads
下載Windows版本,無腦下一步。安裝完畢github
如何啓動Git?thinkphp
在任何位置右鍵-Git Bash Here便可在當前目錄打開Git。安全
注意:在哪裏點擊右鍵,就會在哪一個目錄打開。在C盤打開,終端就會顯示C盤。服務器
Linux和Mac都內置了Git,直接打開終端便可。ide
注意:切換目錄的方法,除了手動輸入路徑,也能夠按下cd 以後,把文件夾直接拖到終端裏面,終端直接就能顯示路徑。thinkphp5
Git最核心的功能是版本控制,不知道什麼是版本控制也不要緊,下面列舉了幾個使用場景:工具
總結成一句話就是:善用Git,能夠下降代碼被破壞的風險,提升開發效率。
一句話概述,一個普通的文件夾,若是用Git託管,它就是一個代碼倉庫。
倉庫是一個總體,因爲Git的託管,倉庫裏面的代碼若是發生了任何變動,均可以被Git記錄下來。
有了這種代碼追蹤,極大的方便了代碼的保存、恢復、提交。
倉庫分爲本地倉庫和遠程倉庫。
本地倉庫就是當前電腦上的倉庫。遠程倉庫是團隊合做時,服務器上的倉庫,在本地和遠程倉庫之間,能夠互相傳輸數據。
而GitHub就是遠程倉庫之一,GitHub上面的倉庫能夠共享給其餘人或團隊。
此外還有其餘的遠程倉庫軟件,甚至能夠本身搭建一個倉庫服務器。
許多優秀的教程,都在GitHub上提供了示例代碼,而且按照教程的章節進行了劃分(一節教程對應一節代碼)。
藉助Git,能夠快速切換,保證當前的代碼和教程的章節對應。
打開一套包含示例代碼的教程,裏面會有代碼倉庫的地址:
好比:https://github.com/yunzhiclub/thinkphp5.0guide
打開這個GitHub項目,裏面就是所有的文件了。
如何把它下載到本地呢?
第一個命令: git clone
須要注意的是,命令在哪一個目錄執行,代碼就會clone到哪裏,因此clone前須要先肯定文件夾位置
// 使用方法 // 把遠程倉庫的代碼下載到本地的當前文件夾 git clone <倉庫地址> // 示例 git clone https://github.com/yunzhiclub/thinkphp5.0guide.git // 把遠程倉庫的代碼下載到特定的文件夾中 git clone <倉庫地址> <本地文件夾的地址> // 示例,克隆到PHP文件夾 git clone https://github.com/yunzhiclub/thinkphp5.0guide.git PHP
出現如下提示,說明clone完成:
文件夾中能夠找到全部示例文件:
接下來就能夠按照教程學習了。
若是你學到了第二節,而本身代碼還在第一節,但你又懶的照着教程敲一遍,怎麼辦呢?
因爲教程的做者已經爲代碼設置了不少「保存點」,咱們使用git checkout 命令,就能夠任意切換這些「保存點」。
使用cd <文件夾名>
命令進入代碼文件夾,能夠看到出現了git:(master)字樣,
此時輸入git tag
,會顯示做者設置的全部「保存點」:
查看完畢後按q退出
接下來就是切換了,好比我學到了第2.4章,使用
// 切換到某個保存點 git checkout step2.4 // 放棄當前代碼,強制切換到某個保存點 git checkout -f step2.4
出現了下圖:
說明切換成功,如今你的本地代碼就和教程如出一轍了。
因爲本部分涉及到分支的概念,初學者很難作到深入理解,所以先提供操做,只要嚴格按照本文進行操做,就能夠順利進行。
分支,就是字面意思,能夠把代碼分紅幾個互不影響的版本,好比,目前有三個如出一轍的分支:master分支,A分支和B分支,如圖:
它們的代碼都是123。
若是我在A分支上把代碼改爲456,在B分支上把代碼改爲789,此時master分支的代碼不受任何影響,仍是123。
master做爲項目主分支,一個優秀的團隊,是不容許直接向master分支提交代碼的。
規範的作法是在本身的分支上完成編寫,而後向master分支提出合併代碼的請求,由負責人進行審覈,審覈經過以後,會把代碼合併到主分支上。
這就是團隊開發的基本流程。
既然是團隊開發,就須要瞭解issue。
issue是「事件」的意思,也就是告訴其餘成員,「我正在作什麼,我想實現什麼功能」,當別人看到你的issue後,就知道你正在作這件事,避免兩我的寫出重複的代碼。
一個issue對應一個分支:
好比這個issue的編號是4,咱們就在本地建立4分支:
若是咱們固然在master分支上,輸入:
// 建立名稱是4的分支 git checkout -b 4
就成功建立了4分支:
以後全部的更改,都在4分支上進行,和主分支沒有關係了。
當你的代碼寫完以後,回到終端,輸入:
// 讓git記錄當前目錄的全部文件 git add . // 提交更改到本地倉庫,備註信息隨便寫,好比寫「我正在作什麼」 git commit - m <備註信息> // 將本地的更改推送到GitHub的4分支 git push origin 4
這三條命令,能夠把你的代碼推送到GitHub上,還差最後一步
最後一步是發起合併請求。
在GitHub網站上新建PullRequest。
compare處填寫本身剛剛上傳的分支,
base處填寫被合併的分支
上圖的意思是,把本身的2分支合併到主分支上,主要不要寫反!
點擊提交後,剩下的就交給負責人審覈了。
講的再多也沒用,本身試一試,什麼都明白了。
記得去年咱們剛開始作第一個練手的項目時,在Git方面遇到問題。
因爲Git涉及到團隊協做,若是任何一我的掌握很差,都會影響合做項目的代碼安全(好比誤刪代碼、提交了錯誤的代碼,等等)。
出於這個緣由,我提早向碩哥請教GitHub的基本用法,本身學會後再講給小組的其餘成員,所以保證了後來每次代碼合併都平穩、安全的進行。
後面的內容會盡快更新。