Git是一個分布式的版本控制系統(tǒng),作為開源代碼庫以及版本控制系統(tǒng),Github目前擁有140多萬開發(fā)者用戶。隨著越來越多的應(yīng)用程序轉(zhuǎn)移到了云上,Github已經(jīng)成為了管理軟件開發(fā)以及發(fā)現(xiàn)已有代碼的首選方法。
> Git是一個分布式的版本控制系統(tǒng),最初由Linus Torvalds編寫,用作Linux內(nèi)核代碼的管理。在推出后,Git在其它項目中也取得了很大成功,尤其是在Ruby社區(qū)中。目前,包括 Rubinius和Merb在內(nèi)的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。
>
如前所述,作為一個分布式的版本控制系統(tǒng),在Git中并不存在主庫這樣的概念,每一份復(fù)制出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進(jìn)行合并。
>
GitHub可以托管各種git庫,并提供一個web界面,但與其它像 SourceForge或Google Code這 樣的服務(wù)不同,GitHub的獨特賣點在于從另外一個項目進(jìn)行分支的簡易性。為一個項目貢獻(xiàn)代碼非常簡單:首先點擊項目站點的“fork”的按鈕,然后將 代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過內(nèi)建的“pull request”機(jī)制向項目負(fù)責(zé)人申請代碼合并。已經(jīng)有人將GitHub稱為代碼玩家的MySpace。
>
百度百科:http://baike.baidu.com/view/3366456.htm
今天我們就來學(xué)習(xí)github的使用,我們將用它來管理我們的代碼,你會發(fā)現(xiàn)它的好處的,當(dāng)然是要在本系列教程全部完成之后,所以請緊跟站長的步伐,今天是第一天,我們來學(xué)習(xí)如何在git上建立自己的版本倉庫,并將代碼上傳到倉庫中。
### 教程【一】
一、注冊一個免費git帳號,可以無限建立訪問權(quán)限為公共的版本倉庫,注冊地址:https://github.com/signup/free
二、依次填寫,用戶名【昵稱】、郵箱地址【用來登錄】、密碼,點擊“creat an account”進(jìn)行注冊
三、點擊右上方的”sign in”使用注冊郵箱登錄到git
四、點擊右上方,你的用戶名之后的圖標(biāo),新建一個版本倉庫
五、在“Repository name”一欄里填寫版本倉庫的名稱,我們假設(shè)為”test”,Description欄是描述,可填可不填。
默認(rèn)訪問權(quán)限為公共,我們點擊”Creating Repository”按鈕,創(chuàng)建我們的第一個版本倉庫。
接下來,我們需要在本地安裝git客戶端。
六、以windows為例,下載客戶端:http://github-windows.s3.amazonaws.com/GitHubSetup.exe,安裝完成后,會在桌面上出現(xiàn)兩個圖標(biāo),Git Shell和GitHub。
七、那兩個圖標(biāo)分別是命令行工具和圖形界面,我們先來學(xué)習(xí)使用shell。
八、雙擊打開Git Shell,【win7用戶使用管理員權(quán)限打開】
九、輸入git config --global user.name "d1php"
,這里的d1php是站長注冊的用戶名,你得改成你自己的
十、輸入git config --global user.email "studyphp@yahoo.cn"
,這里的郵箱也是是站長注冊的郵箱,你得改成你自己的
十一、上面兩步在客戶端配置你的git帳戶,下面我們在本地建立自己的版本倉庫,站長把版本倉庫建立在D盤。輸入cd d:
,切換到D盤目錄。
十二、輸入mkdir test
,建立一個test目錄,注意本地倉庫名要和git中建立的倉庫名一樣
十三、輸入cd test
,進(jìn)入test目錄
十四、輸入git init
,初始化版本倉庫
十五、輸入touch README
,建立一個README文件
十六、用文本編輯器打開README文件,隨便輸入一點文件,比如:this is a test!
十七、輸入git add README
,將文件添加到上傳隊列
十八、輸入git commit -m 'test commit'
,緩存提交,引號中的是對本次提交的描述,必須填寫,不能為空
十九、輸入git remote add origin https://github.com/_d1php_/test.git
,注意url格式,d1php是你注冊時的昵稱,test是你剛才建立的版本倉庫
二十、輸入git push origin master
,將README文件上傳到版本庫。這一步會一次讓你填寫你的git注冊郵箱和密碼,注意不要填錯了
好了,到這一步,我們就完成了在線上和線下建立git版本庫并上傳文件的全部步驟。下節(jié)課我們來學(xué)習(xí)GitHub的使用,圖形界面大家肯定更容易接受。
教程【二】
上一節(jié)課我們學(xué)習(xí)了git shell的初步使用,今天我們來學(xué)習(xí)github的圖形界面。
一、雙擊桌面上的GitHub圖標(biāo)
二、在打開的界面中,點擊Log In,圖下圖所示:
![](/d/20211017/87334b60eedd7f0fce01336c2a797b93.gif)
三、在界面中輸入用戶名和密碼,如下圖所示:
![](/d/20211017/b1fdf3185e7da85300b311b7aa69ed3f.gif)
四、點擊LOG IN,進(jìn)入下圖所示界面:
![](/d/20211017/ed806492166963def02dd06ce9619193.gif)
五、點擊'continue',進(jìn)入下圖所示界面:
![](/d/20211017/0cd9d01b3e6c2e8c8dcf1831eea8b917.gif)
六、提示我們沒有找到本地版本倉庫,這是因為git客戶端默認(rèn)是在C盤的git目錄中查找版本庫,而我們在上節(jié)課中建立的版本倉庫在D盤,所以才找不到,沒關(guān)系我們自己來查找,點擊SKIP,進(jìn)入下圖所示界面:
![](/d/20211017/90626062fcc9e298bafae73b3c0c948f.gif)
七、點擊'tools',在下拉菜單中選擇'options',進(jìn)入下圖所示界面:
![](/d/20211017/50357dc17a1c32b0f829856ed4cbea20.gif)
八、定位到D盤目錄,然后點擊SCAN FOR REPOSITORIE,掃描本地倉庫,如下圖所示:
![](/d/20211017/86872554442d7e749cf86a73de03ee5e.gif)
九、很快就找到了我們上節(jié)課建立的版本倉庫,test,點擊左下方的add,再點擊update,進(jìn)入下圖所示界面:
![](/d/20211017/e628df0f98c26489b02b2349d1ccef6d.gif)
十、進(jìn)入D:/test目錄,新建一個名為hello的txt文件,在其中輸入hello world!,然后點擊上圖中的箭頭打開版本庫,進(jìn)入下圖所示界面:
![](/d/20211017/0944a94b2e153ac57dbdf37eb2a67708.gif)
十一、左邊欄會列出最新有改動的文件,右邊第一欄填寫對本次提交的描述,我們填'hello world';第二欄是詳細(xì)描述,可以不填。填完后點擊'commit'提交,進(jìn)入下圖所示界面:
![](/d/20211017/d0c2aeb3319648e4c71812db8ea77dad.gif)
十二、在右邊我們可以看見剛才新建的提交:hello world,點擊publish,將我們的改動上傳到線上的git倉庫中。
十三、稍等片刻,即可完成上傳,如下圖所示:
![](/d/20211017/de017abc06fe49edc986dd4ebcab07f7.gif)
上傳成功后,我們可以在左邊看見剛才完成的提交。然后我們訪問線上的倉庫,檢查一下:https://github.com/d1php/test
是的,線上的test倉庫又多了2個文件。
好了,到這里我們就已經(jīng)使用GitHub圖形界面完成了一次文件上傳,下節(jié)課我們將回到gitshell的學(xué)習(xí)。我們將使用gitshell下載線上的版本倉庫到本地,如果對本教程有疑惑可以聯(lián)系站長哦。
教程【三】
今天我們來學(xué)習(xí)如何使用gitshell將線上的版本倉庫下載到本地。我們?yōu)槭裁匆丫€上的倉庫下載到本地,通常情況下是我們想要參與別人的項目。
github上面有一個項目:https://github.com/octocat/Spoon-Knife,點擊訪問它。
現(xiàn)在我們想要參與這個項目,需要進(jìn)行以下步驟:
一、訪問上面的鏈接,點擊fork按鈕,
二、現(xiàn)在spoon-knife項目已經(jīng)添加到你的線上版本倉庫中了,我們要下載它。打開gitshell,輸入https://github.com/d1php/Spoon-Knife.git
,注意這里的d1php應(yīng)該是你注冊時的昵稱,在此使用了站長的帳號。
三、前兩節(jié)我們把版本倉庫建立在了D盤根目錄,因此這里默認(rèn)是在D盤目錄只想的shell,進(jìn)入D盤,會發(fā)現(xiàn)多了一個spoon-knife目錄,線上的源碼已經(jīng)下載下來了。
四、輸入cd spoon-knife
五、輸入git remote add upstream https://github.com/octocat/Spoon-Knife.git
,這里我們使用的是原項目的地址,確保我們可以隨時跟蹤到原項目
六、輸入git fetch upstream
,獲取原項目最新的與你本地版本庫不同的修改,但是不修改你的本地文件
好了,如何將線上倉庫下載到本地就學(xué)習(xí)到這里,下節(jié)課我們學(xué)習(xí)如何建立版本分支。
教程【四】
學(xué)習(xí),貴在持之以恒!歡迎大家跟站長繼續(xù)學(xué)習(xí)github的使用,今天我們將學(xué)習(xí)如何使用 gitshell建立版本分支。如果你想要在原項目的基礎(chǔ)上嘗試一些新的思路或者開發(fā)新功能、修改等等,你可以建立原項目的一個分支,這樣當(dāng)進(jìn)行修改時原 來的代碼是不會受到影響的。我們前幾節(jié)課建立一個test版本庫,今天我們來為它建立 一個分支。
一、打開gitshell,輸入 cd test
,進(jìn)入本地的test版本庫
二、輸入git branch testbranch
三、輸入git checkout testbranch
,將testbranch分支設(shè)置為當(dāng)前工作分支
四、輸入git add ./
,將test目錄的所有文件添加至上傳隊列
五、輸入git commit -m 'newbranch'
,緩存提交
六、輸入git remote add origin https://github.com/d1php/test.git
,配置上傳目標(biāo)倉庫
七、輸入git push -u origin testbranch
,將文件上傳到分支
然后訪問:https://github.com/d1php/test/branches,會發(fā)現(xiàn)多出了一個分支testbranch!
怎么樣,今天的學(xué)習(xí)很輕松吧。明天我們將學(xué)習(xí)如何使用github圖像界面將線上倉庫中有改動的文件下載到本地,或者稱之為“版本同步”。
教程【五】
今天我們學(xué)習(xí)如何使用github圖形界面來讓我們本地的版本倉庫和線上的倉庫保持一致,或者說如何把線上倉庫中有改動的文件下載到本地。
一、首先,我們訪問https://github.com/d1php/test。還記得我們在第一節(jié)課建立的hello.txt文件嗎?如下圖所示:
![](/d/20211017/0729626417b451d07b986dbe0683ca52.gif)
二、雙擊該文件,來到下圖所示的界面:
![](/d/20211017/4f4197cc1d4fa948941cf99866425c09.gif)
三、點擊edit按鈕,并對文本進(jìn)行一些修改,如下圖所示:
![](/d/20211017/fd02a60effb787c822c03e6af06f9b8b.gif)
四、編輯完之后,點擊頁面最下方的commit changes按鈕:
![](/d/20211017/0e998f1fccfed19b5cae705f990ffe53.gif)
五、打開github,如下圖所示:
![](/d/20211017/2b93cfe5270f62f073aa34c7fa8568dc.gif)
六、點擊右邊的箭頭,打開本地倉庫,如下圖所示:
![](/d/20211017/05ab797c2de055553657bcd4ced82879.gif)
七、github會自動讀出最新的修改,并且上端會出現(xiàn)一個藍(lán)色sync【sync是同步的意思】按鈕。如果你沒有看見藍(lán)色的圖標(biāo),可以點擊F5刷新界面?,F(xiàn)在我們點擊sync按鈕,這樣github會將線上有改動的文件下載到本地,如下圖所示:
![](/d/20211017/06a0a15f392b94647af14e3d2646d8fc.gif)
下載玩之后,藍(lán)色的sync會變成灰色的in sync,這說明最新的文件已經(jīng)下載到本地的倉庫了,去檢查一下吧!怎么樣,沒錯吧。
感謝大家跟著站長進(jìn)行了5天的學(xué)習(xí),明天我們將繼續(xù)學(xué)習(xí)github圖形界面的使用,我們將學(xué)習(xí)如何使用github圖形界面來建立一個版本庫的分支。
教程【六】
學(xué)習(xí),有時候就是一個漫長而枯燥的過程,但是當(dāng)你走到終點時,回過頭來再看看這段路,則會露出滿不在乎的表情!今天我們學(xué)習(xí)如何使用gitgui來建立版本分支。
一、打開github圖形界面,點擊藍(lán)色箭頭打開我們之前建立的test倉庫,如下圖所示:
![](http://www.phptogether.com/wp-content/uploads/2012/07/13.png)
二、在打開的界面中,點擊master按鈕,如下圖所示:
![](/d/20211017/9b4d14ac6f9640eb9a210d4202b090b2.gif)
三、在彈出的窗口中,點擊manage按鈕,如下圖所示:
![](/d/20211017/57f5d77b0d74f686000f345930a1b2d5.gif)
四、進(jìn)入分支界面,把鼠標(biāo)移動到master分支上,并點擊加號,如下圖所示:
![](http://www.phptogether.com/wp-content/uploads/2012/07/42.png)
這會以master分支的文件為藍(lán)本建立一個新的分支。
五、點擊加號后,會彈出輸入框,輸入新分支的名稱,并點擊BRANCH按鈕創(chuàng)建分支,如下圖所示:
![](/d/20211017/efef77989c88ef26617f8b24873cf1db.gif)
站長輸入是testbranch2,因為之前用gitshell建立一個testbranch分支。
六、創(chuàng)建完之后,會在當(dāng)前頁面顯示新分支,如下圖所示:
![](/d/20211017/e0bc67ada99c5b08e14f73d5fb494057.gif)
點擊publish按鈕,將新分支發(fā)布到線上的git倉庫中。發(fā)布完之后,publish按鈕會變成unpublish,說明分支已經(jīng)上傳到線上的倉庫中了。
七、訪問https://github.com/d1php/test/branches,查看分支情況,如下圖所示:
![](/d/20211017/af973c32e30c96baf4cf8668716c6d10.gif)
我們會發(fā)現(xiàn),盡管顯示有3個分支,但是在頁面上只呈現(xiàn)了2個,新建立的沒有出現(xiàn),這是因為默認(rèn)是讀取master分支以及沒有與master整合的 分支,而我們剛才創(chuàng)建的testbranch2分支是以master為藍(lán)本,因此它們之間沒有任何不同,所以才沒有顯示。我們點擊branch下拉按鈕, 可以看見我們剛才建立的testbranch2分支。
八、點擊上圖中的testbranch2按鈕,進(jìn)入下圖所示界面:
![](/d/20211017/cc00780acd5eef7e8f5c4ce14d62c47b.gif)
現(xiàn)在,我們可以在線上的版本倉庫中看見我們剛才建立的分支了。
九、現(xiàn)在我們回到第六步的github圖形界面,把鼠標(biāo)移動到新建分支testbranch2上面,如下圖所示:
![](/d/20211017/b6724c9d37089a40a65dc6d737faacc6.gif)
上圖中第一個紅圈包圍的圖標(biāo)是用來刪除分支的,它將同時刪除本地和線上倉庫的分支;第二個紅圈僅僅刪除線上倉庫中的分支,本地分支會被保留?,F(xiàn)在我們,點擊第一個紅圈包圍的圖標(biāo),將本地分支和線上分支同時刪除。
十、訪問https://github.com/d1php/test/branches,我們會發(fā)現(xiàn)剛才建立的testbranch2分支已經(jīng)被刪除了,gitgui中也不再顯示該分支了。
ok,到此我們就學(xué)會了如何使用github圖形界面創(chuàng)建、發(fā)布、刪除分支,下節(jié)課我們將學(xué)習(xí)如何使用github圖形界面對分支版本進(jìn)行操作。
您可能感興趣的文章:- C#/.NET使用git命令行來操作git倉庫的方法示例
- Git 命令行教程及實例教程(附github注冊)
- Windows 版本Git命令行的使用詳解