Git與github使用


現在才開始寫git和github使用教程給人以小菜鳥的感覺。。。

事實上,我注冊GitHub已經多年了,編程經驗也有五年了,然而真正用上git的可能幾乎為0,說句公道話,我是做個人開發的,也沒有開發過什么高大上的開源工具,故而github對我來說是那么的陌生,有大佬說:如果程序員不會用git,那簡直連編程的門檻都沒進呢。

好吧,我用了好多年的百度雲備份代碼,慚愧。

馬上要步入工作(團隊開發)的我,是時候做個example學習一下Git與github的使用了。

我將會把我的畢設——華爾街APP使用git托管到github上

Git與github使用教程

首先,要知道git和github完全是兩回事

git:是一款軟件,工具
github:是一個平台

關於Git的小故事

Git的作者就是大名鼎鼎的Linus先生,他因為創立了Linux內核而名聲大噪,Git的誕生與Linux密不可分。

Linux作為開源操作系統 ,代碼需要由全世界來維護,那么首先要解決的就是如何讓全世界人去開發一款軟件(Linux),這就需要用到分布式管理的概念了。

事實是,在2002年以前,世界各地的志願者把源代碼文件通過diff的方式發給Linus,然后由Linus本人通過手工方式合並代碼!

隨着Linux代碼不斷的膨脹,Linus不得不考慮使用管理服務了,當時流行的版本管理工具有SVN,CVS,直至今日他們依然廣泛被使用,但眾所周知,Linus老人家“強迫症”嚴重,他堅決反對使用他們,理由是他們是非分布式,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。

當時Linus算是妥協的選擇了一款商用的版本管理工具BitKeeper——BitKeeper的東家BitMover公司出於人道主義精神,授權Linux社區免費使用這個版本控制系統。

但是跟着Linus混的大佬們都是什么人?那都是極具黑客色彩的“互聯網梁山好漢”,也許是出於刺激感,也許是對商業軟件的不滿,以開發Samba的Andrew為首的大佬們試圖破解BitKeeper的協議,后來東窗事發,被BitMover發現,一怒之下收回Linus社區BitKeeper的使用權。

其實只要Linus一個小小道歉,就可以挽回BitKeeper,然而,他的性格,可能會嗎,哼?Linus不僅沒有道歉,還怒噴Bitkeeper就是個辣雞,Linux社區不需要他。

后來的事,Linus花了一個月開發了Git——分布式版本控制工具!僅僅一個月?!大佬不愧是大佬,什么授權,什么商業公司,不存在的!你不給我用的東西,我還不屑什么授權呢,沒有就寫一個啊!不就是個版本控制工具嘛?很難嗎?

Git迅速成為最流行的分布式版本控制系統,尤其是2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

歷史就是這么偶然,如果不是當年BitMover公司威脅Linux社區,可能現在我們就沒有免費而超級好用的Git了。

Git和CVS,SVN最大的區別在於分布式,每一台安裝git的電腦都有本地“緩存”版本——鏡像,即使沒有網絡的情況下,代碼版本會被保存在本地,一旦連上了遠程git服務,立刻同步上去。

Github的后端使用的就是git!而github應該被定義為一個網站——平台。

知乎有一段子是這么解釋git和GitHub的關系:

Git好比魔獸爭霸,GitHub好比對戰平台。

使用前准備

下載git:https://git-scm.com/downloads

安裝好后找到git安裝目錄下的bin目錄,將bin配置到PATH環境變量里,打開windows cmd,輸入sh,git,bash三個命令,應該都奏效了,輸入exit退出去。

進入:https://github.com/

注冊登陸好,然后點擊右側新建按鈕:

這里寫圖片描述

進入新建項目的頁面后輸入你想要新建項目的相關信息,選擇一個協議,一般用MIT的就可以,點擊create Repository即可。

這樣項目已經在github上生成了。

建立SSH連接

熟悉github的都知道,習慣上我們使用ssh協議連接github來管理我們的項目,這種感覺就是Linux ssh遠程控制的閹割版。你只能管理項目,不能控制一台虛擬設備。

打開windows命令行輸入git安裝后攜帶的命令:sh

進入了sh界面,這其實就是個linux的bash

創建ssh密鑰:

ssh-keygen -t rsa -C "devilyouwei@gmail.com"

接下來終端提示,不停按回車過去就行。

他會提示你密鑰保存目錄,去找到那個“id_rsa.pub”文件

這里寫圖片描述

一般是在用戶目錄下的ssh目錄下。打開后復制全部內容!

注意:這里復制一長串密鑰開頭應該是ssh-rsa字樣

重新進入github網站點擊個人頭像下拉找到“setting”進入設置界面

點擊左側

這里寫圖片描述

點擊“new ssh key”按鈕

隨便輸入一個標題,然后粘貼剛剛復制的一長串密鑰,並且保存即可!

這里寫圖片描述

離開GitHub網站,回到本地操作。

測試連接

打開windows cmd命令行,輸入:

ssh -T git@github.com

結果應當如下:
這里寫圖片描述

繼續配置用戶名和郵箱認證:

git config --global user.name "devilyouwei"

git config --global user.email devilyouwei@gmail.com

這里輸入的就是GitHub注冊的郵箱和用戶名,需要同步!

項目管理

在成功連接上GitHub后,項目的管理的功能就很多了,比如:

github 初始化到 本地

我們稱本地項目的目錄為倉庫,現在要把剛剛在GitHub新建的項目同步到本地的倉庫來(項目目錄為空的情況下)。

首先本機沒有項目目錄就先創建目錄,一般與github創建的項目名相同比較好,cmd下切換到倉庫目錄下輸入命令:

git init

git remote add origin git@github.com:devilyouwei/WallStreet.git

第一行命令origin后面跟着的是項目地址,如何獲得,在GitHub點擊

這里寫圖片描述

這一步是將遠程項目源添加到本地,然后初始化git,注意初始化應該在倉庫(項目)目錄下執行,執行完后目錄里多一個隱藏的目錄“.git”,不用理會,有了他就能在當前目錄為所欲為了!哦不,我是說已經關聯好了。

注意:如果發現項目同步錯了目錄,應該切換到想要同步到的目錄下,輸入git init,重新pull接下來

第一次從遠程同步到本地使用pull:

git pull origin master

現在去看看目錄,已經將遠程項目文件同步到本地了(一般有個readme.md文件)!

本地 到 github

在項目目錄下新建一個index.js文件,隨便寫點代碼進去。

輸入:

git status

這里寫圖片描述

提示有一個文件沒有commit上去,標記為紅色,並告訴你用git add把他添加進去。

再次輸入:

git add -A

git status

這里寫圖片描述

綠色表示已經添加可以commit到GitHub上了

輸入:

git commit -m "a new index.js for the project"

git push origin master

commit后面跟着的是本次版本更新的描述,然后使用與pull相對的push提交至服務器即可。

查看GitHub項目:

這里寫圖片描述

這里寫圖片描述

完成本次提交!

github 更新到 本地

有這么一種場景,開發者在多台電腦上開發同一個項目,或者多人開發不同的模塊,例如我在公司寫了一些代碼,按照上述操作同步到了github上,回到家后由於遠程代碼版本變了,需要先將遠程代碼反向同步回家里的電腦上,操作如下:

git remote -v

這里寫圖片描述

可以看到origin倉庫的fetch和push版本,這里我們使用fetch將遠程代碼逆向同步到本地,稱之為合並到本地或更新到本地

git fetch origin master

這里寫圖片描述

比較與本地倉庫中代碼的區別,我這里兩邊代碼一樣,終端並不會輸出什么

git log -p master.. origin/master

同步(更新合並)

git merge origin/master

這里寫圖片描述

正如之前比較結果所述,兩邊代碼相同,所以提示:“already up to date”。

注:以上所述origin為倉庫名,master為分支名。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM