以前在逛各大設計社區(qū)網站(dribble,Behance之類的)時就覺得有這么一些可以發(fā)布個人作品,交流作品,然后慢慢提升作品水平的社區(qū)是一件了不起的事情。
到了后來,對寫代碼這件事產生興趣了,就在想,開發(fā)者是不是應該也有類似的社區(qū)。沒錯,它就是我們今天的主角Github。
先來說說Github有什么功能:
托管功能:你可以把你在本地寫的代碼傳到Github上,由Github對你的代碼進行托管,且可供其他GitHub用戶查看,說白了GitHub就是全世界程序員放代碼的大倉庫;
團隊協(xié)作功能:如果你的團隊在進行一個項目,可以把代碼托管到GitHub的倉庫上,然后負責各成員根據(jù)編寫功能的不同,創(chuàng)建不同分支,各分支之間互不影響,在最終提交代碼時再把各分支合并在一起提交
社交功能:如果你遇到你喜歡的項目,你可以把它fork(復制)過來,也可以給它個star,甚至你可以為你自己喜歡但有不足的項目貢獻自己的力量。你還可以在Github上關注其他用戶,當然咯,其他用戶也能關注你。
哪要怎么使用GitHub呢(以下以mac操作系統(tǒng)為例):
首先,當然是下載咯。請到? mac.github.com 下載 。 ?
然后下載完,是不是馬上打開那個軟件。當然不是,我們是程序猿嘛,當然要用一點有逼格的方法啦。
請打開你的mac的終端,黑底白字炫酷叼咋天有沒有(圖一)。
?然后,在終端上設置你的名字跟郵箱:
git config --global user.name ?"隨便起個炫酷叼咋天的名字"
git config ?-global ?user.email "這里面是你的郵箱"
?好了,現(xiàn)在git就知道你是誰了。
?接著,你要創(chuàng)建一個能夠放代碼的地方,我們管它叫倉庫(repository)
mkdir ?newResp ? ? ? ? ? ? ? ? ? ? ? ? //創(chuàng)建一個新的目錄叫newResp
cd newResp/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//進入這個目錄
git init ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//把這個目錄初始化為一個git的倉庫 ??
再接著,我們就要創(chuàng)建一個文件,然后把它提交到git
隨便在newRes文件夾下創(chuàng)建一個文件,此處創(chuàng)建文件為github.txt
git add github.txt ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加你要提交或修改的文件
git commit -m "你所提交的文件的相關信息" ? ? ? ? ? ? ?//提交文件
就這樣,就完成了把文件提交的操作,不明覺厲有沒有。但注意,這里說的是提交到git(目前,代碼還只是存在于電腦本地),并非前面提到到提交到github,所以我們需要創(chuàng)建于github的聯(lián)系。
你要去銀行存錢,那你也得知道存入這個銀行的什么賬號對吧。所以這個時候git需要知道github的賬號。如果沒有github的賬號,可以去?github.com?免費注冊一個賬號,然后回到終端,進行以下操作建立聯(lián)系。
git config --global user.username ? 你的github賬號(此處不用加雙引號) ? ? ? //讓git知道你的github賬號是什么
然后你需要登錄你的github賬戶,登錄進去后你會看到菜單欄右上角有個加號,點擊創(chuàng)建新的倉庫,倉庫名盡量跟你本地的倉庫名一致,然后勾選上public,即可點擊Create Respository(如圖二)。接著出現(xiàn)圖三界面,請把第二行的url復制起來。
回到終端,輸入
git remote add? origin? <urlfromgithub>? ? ? //origin是github上對該倉庫的標示符,<urlfromgithub>是剛才復制的url。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 標示符跟url的關系相當于聯(lián)系人和與其對應的電話號碼那樣,origin可以按照自己的意思隨意更改
git push origin master ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//把之前在本地的commit過的文件提交到github的該倉庫下,分支為master
這樣就完成了向github提交代碼的全過程。
但一般來說,我們用github也不全只提交自己的代碼。有不少時候是提交團隊的代碼,或者fork別人的代碼來修改。
在團隊協(xié)助中,可能有不同的成員負責不同的功能,為了隔離開不同的進度,并保護主要分支在最終提交前不被修改,我們會用到branch(分支)這一功能。我們可以創(chuàng)建不同的branch,并把自己修改完的代碼提交到不同的branch,到最后確定無誤后才合并到主要分支(master).
在終端,輸入:
git branch <branchname > ? ? ?//創(chuàng)建新的branch
git checkout ?<branchname> ?//切好到名字為branchname的branch
git branch ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//可以查看當前的branch有多少個,當前用的branch是哪個
git push origin <branchname> ? //把修改的文件push到origin 這個倉庫的 名為branchname的branch ,而其他branch不受影響
在所有代碼完成修改確認無誤后,我們便可以把一些分支合并到主要分支中(master),并刪除這些分支。
在終端中,輸入:
git checkout master ? ? ? ? ? ? ? //回到主要分支
git ?merge <branchname> ? ? //合并你想合并的分支
?git branch -d ?<branchname> ? //合并后刪除多余的分支
git ?push origin --delete <branchname > ?//合并后刪除github多余的分支
如果我們看到一些別人的項目,想要收藏它或者自己想改動,那么我們可以把它fork(復制)到自己github的倉庫。在每個repository詳細頁面里的右上角有一個fork(如圖四)。點擊后fork后該項目就會存儲到你的repository中。在圖四中你能看到右下角有個url。復制這個url。
在終端中輸入:
git clone ?url ? ? ? ? ? ? ?//url為剛復制的url ,執(zhí)行此操作則能在把該項目下載到本地的相關位置