2017-04-24
最近洗心革面痛下決心要好好再深入學習一番前端,正好加入了一個外包團隊接了份單子,外包項目正在如火如荼地進行着,自己也打算趁這個機會來好好學習總結一番。
但是俗話說得好,“工欲善其事,必先利其器”,了解現有的開發工具會有助於你更高效地開發。
首先第一點,啥是Github?
反正那年我才剛上大二,面對着各種網上搜來關於Github的解釋啊教程啊一頭霧水,可能是當時他們講的太高大上了,也可能是當時自己還太年輕心浮氣躁的沒靜下心來看,直到最近才用着用着摸出個所以然來的。
Github,目前世界上最先進的分布式版本控制系統,沒有之一。[廖雪峰老師的話]
我個人覺得這玩意是不是世界最先進倒不好說,反正很是流行。本人一計算機專業代碼狗,身邊的同學都會用Github,做個作業打個項目:“你去Github搭個倉庫吧”,搞得你不會用Github就會被同學鄙視一番,那可怎么辦,學啊。
首先先來看這個版本控制系統,為何要版本控制呢?假設你做一個項目,弄了個1.0版本,后面客戶改了改需求,你在原來的基礎上弄了個2.0版本,結果客戶一看這需求改的不好還是想要回原來的。改的少還好,改得多了你只能一邊罵街一邊改回去,搞不好你都不記得之前的代碼長啥樣了。那有人說我弄一個版本保存一個副本就好了唄,改個十多次放得又亂你還能找到原來的代碼?而且這很浪費內存的。所以如果能有一個系統,幫你保存你的每個版本(不管這個版本是否完整都能幫你保管),你只需要每次把手頭上弄好的最新版本提交到這個系統上即可,然后可以繼續在你原有的代碼上修改。就算你手頭上的代碼丟了、不想要了,隨時隨地都能在這個系統中找回代碼或者退回以前的版本去,這樣豈不妙哉!Github就是這樣一個強大的版本控制系統。
然后再說說這個分布式,分布分布,從其字面意思看,就是把內容分別布置在不同的地方。那么這個分布式又有什么用呢?現在項目講究團隊合作嘛,假設你和你的隊友一起做網站,各做了頁面的一部分,那么每次做好了你們還得用U盤拷貝一份到對方的電腦上,然后手動整合代碼,這樣才能合並成一個完整的頁面,聽起來感覺很是麻煩,也很容易亂。但是使用Github以后,你們每個人都可以把自己做好的最新的版本放到Github上面去,Github會幫你們自動整合成一份完整的代碼(特殊情況時Github會提示需要你手動整合),然后這時你就可以把Github上的最新版本代碼復制(pull)到你的電腦上面去,從此你就有了一份完整的代碼,你的隊友也是如此。整個開發過程你們就這樣提交(push)又pull,無需U盤,可遠程操作,方便了許多。
總地嚴肅地說,分布式的版本控制就是每個人都可以創建一個獨立的代碼倉庫用於管理,各種版本控制的操作都可以在本地完成。每個人修改的代碼都可以推送合並到另外一個代碼倉庫中。[摘自百度知道,出處不詳]
總而言之,言而總之,Github是個好東西,希望你也有哈哈。
那么如何擁有Github賬號呢?
1.首先登陸其官網:https://github.com/
新來的同學請點擊右上角的Sign Up,已有賬號請點擊Sign in並跳過第二步
2.填寫注冊所需的個人信息
用戶名(不可重復)、郵箱、密碼等等。。。
然后坐等Github給你郵箱里面發激活鏈接,點擊激活鏈接之后你就擁有一個自己的Github賬號啦😄
3.創建倉庫
何為倉庫?倉庫是Github保存代碼的單位,你可以把一個倉庫看作一個項目,里面僅存放與你這個項目有關的代碼,或者是一類項目(反正看個人愛好分) 。
點擊“New repository”,進入創建倉庫界面,repository name是倉庫名,Description是關於倉庫的描述(相當於副標題),然后一般創建Public倉庫,Private的要收錢一般是公司用的,也別想着你那丟代碼有誰來看反正我是沒啥關系。最后勾不勾readme都行,但是我還是建議你勾選一下,readme一般是說一下這個項目用了啥框架,多厲害多厲害,最重要的是運行方法啥的。
現在你在遠程的github系統上面已經有一個倉庫啦,下面來說說如何讓你本地的代碼能夠上傳到github系統上面去。
4.安裝git
git相當於github的客戶端,當你在本地打好代碼以后,通過git把代碼上傳到遠程倉庫,也是通過git來下載代碼。
關於安裝還是請看廖雪峰老師的教程,寫的很是詳細,我在這里不再贅述:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000/
最后需要強調這點!!因為我是覺得自己以前的Github賬號上的內容太爛,又重新拿新郵箱申請了一個賬號,重新生成了ssh(下面再說這個是干嘛的)綁定了賬號以后,打好代碼一提交,嗨,Github上面的記錄竟然顯示的是我的舊賬號提交的代碼而不是新賬號。氣得我把舊賬號整個刪除了,還是不行。最終我想起了這個一開始安裝git時設置的“自報家門”信息,改了過來,就變成了新賬號提交的了。設置是如下兩條:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
如果需要查看已有設置信息,則:
$ git config user.name
"Your Name"
$ git config user.email
"email@example.com"
5.ssh key
其實我后來才知道ssh key跟賬號提交紀錄半毛錢關系都沒有(捂臉)
首先說一下ssh是干啥用的吧,當你在github網站上創建了一個倉庫以后,首先是得把這個倉庫克隆到你的本地電腦上面去。
有人可能會問干嘛還得克隆,我自己隨便在電腦上弄個同名的文件夾就好啦,但是實際上是不一樣的,克隆下來的文件夾里面會有一個隱藏的.git文件夾,其中儲存了你的版本信息與提交紀錄,而且只有有這個隱藏.git文件夾的文件才能提交(push)到遠程github倉庫上。
那么一般從github倉庫克隆到本地去有兩種方法:https和ssh
$ git clone "https/ssh"
一般初學者都會用https,因為它很是方便,只需要直接在命令行輸入“git clone https...”即可克隆成功,任意項目不管你是不是項目所有者都可以使用https克隆。當然有利也有弊,https在提交(push)的時候需要驗證用戶名和密碼才可push成功,當你不是項目所有者或參與者的時候,你是不能push的。
ssh配置有些麻煩,但是配置好后,在你push到自己項目里去的時候是不用驗證用戶名和密碼的,但要注意只有你自己創建或參與的項目可以使用ssh克隆,其他人的項目是不能使用ssh克隆的。
6.ssh配置
(1)首先檢查一下你電腦是否已經有ssh key啦
運行 git Bash 客戶端,輸入如下代碼:
$ cd ~/.ssh $ ls
這兩個命令就是檢查是否已經存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已經存在,那么你可以跳過步驟(2),直接進入步驟(3)。
(2)創建ssh key
$ ssh-keygen -t rsa -C "your_email@example.com"
然后它會問你要不要換個名稱保存你的ssh key
Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
當然,你也可以不輸入文件名,使用默認文件名(推薦),那么就會生成 id_rsa 和 id_rsa.pub 兩個秘鑰文件。
接着又會提示你輸入兩次密碼(該密碼是你push文件的時候要輸入的密碼,而不是github管理者的密碼),
當然,你也可以不輸入密碼,直接按回車。那么push的時候就不需要輸入密碼,直接提交到github上了,如:
Enter passphrase (empty for no passphrase): # Enter same passphrase again:
接下來,就會顯示如下代碼提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
當你看到上面這段代碼的時候,那就說明,你的 SSH key 已經創建成功,你只需要添加到github的SSH key上就可以了。
(3)添加ssh key到遠程github賬戶
ssh key其實就是生成的一對公私鑰(其中的id_rsa為私鑰,id_rsa.pub為公鑰)公鑰id_rsa.pub 會被放到遠程github賬戶上面去,這樣每次push的時候系統會將公鑰和提交請求所攜帶的私鑰進行對比、解密,通過即可push成功。(看不太懂的同學去查一下計算機安全之公私鑰加密)
所以首先你需要復制 id_rsa.pub 文件的內容 ,一般是以ssh-rsa開頭的。
然后登陸遠程github賬戶,點擊“setting”
再看到其中的“SSH and GPG keys”
點擊“New SSH key”
把你的ssh key復制黏貼到“Key”中即可,title是用於給這次添加的ssh key起標題,有的人可能會在多台電腦上開發,每換一台電腦就得重新添加一個ssh key,所以要起不同的title以區分。最后點擊“Add SSH key”即添加成功。
(4)測試SSh是否添加成功
在git Bash 中輸入以下代碼
$ ssh -T git@github.com
當你輸入以上代碼時,會有一段警告代碼,如:
The authenticity of host 'github.com (207.97.227.239)' can't be established. # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. # Are you sure you want to continue connecting (yes/no)?
這是正常的,你輸入 yes 回車既可。如果你創建 SSH key 的時候設置了密碼,接下來就會提示你輸入密碼,如:
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
當然如果你密碼輸錯了,會再要求你輸入,知道對了為止。
注意:輸入密碼時如果輸錯一個字就會不正確,使用刪除鍵是無法更正的。
密碼正確后你會看到下面這段話,如:
Hi username! You've successfully authenticated, but GitHub does not # provide shell access.
如果用戶名是正確的,你已經成功設置SSH密鑰。如果你看到 “access denied” ,者表示拒絕訪問,那么你可能哪里操作出了點問題,在配一次唄(略略略)
(5)一個電腦同時使用多個github賬號的SSH key
有的時候可能你們像我一樣,不想要以前的github賬號了,想換一個,那怎么操作呢?教程如下,這里不再贅述:
教程鏈接:http://jingyan.baidu.com/article/948f592414ad67d80ef5f966.html
當然你也可以把之前的那個.ssh直接刪了再重新生成,不過這就相當於你放棄舊的賬號啦。
切記push的時候賬號信息看的是你的git config配置!把它改過來再說!(如果你不知道我在說什么,請回顧4.安裝git)
今天就分享到這里,自己才疏學淺,有任何錯漏歡迎指出!也歡迎大神交流!