GitHub和Git的使用

作爲一名轉行小白,GitHub的大名早已如雷貫耳。在很久以前,特意風風火火的建了一個賬號,進去後忍不住嘆曰:哇嗚。然後就是持續的一臉蒙逼+一頓瞎搞的狀態。第一次接觸太愉快了,導致我們一年多沒有第二次接觸......

之前一直在做(近日終近尾聲)一個和其他單位合作的項目,合作主要在其它方面,軟件一直只是我方三兩個戰友在做而已(爲毛大學裏的科研項目搞得像外包一樣),設備是人家的,所以經常要跑過去調試。每次都是複製一份工程,以時間命名,寫個txt說明,然後去人家的地盤,找Bug,修改,改不好的回來繼續改。有時候Bug還會出現在“隊友”負責的部分,還能不能好好的玩耍了?有時爲了找到之前的某次修改,要打開好幾個工程,而說明又不甚詳細,有時會忘了寫,更是雪上加霜!要是能對版本進行控制該多好,突然想到GitHub,和這事貌似有點關係吧。搞起再說!於是獲得了+11神器Git,順便學了一下GitHub。現將這幾天的學習進行總結,是些最初的理解,並不深刻,留之以供日後嘲笑自己~~

Git是用來管理文件版本的,可以將項目託管給它,使其幫助管理文件。GitHub是遠程倉庫,可以將項目推送到GitHub上,這樣就可以和別人一起工作了。那麼該怎麼用呢?是時候表演真正的技術了:

Git:

1、如果希望使用Git來管理版本,那麼你要有個Git(大大大大大哥別殺我,我把槍都給你)!

2、需要有一個本地的Git倉庫,說白了就是一個文件夾。在這個文件夾中執行git init命令,此乃一切之基礎。方法有二:其一在當前文件夾右鍵,會有git bash here選項,彈出git bash後,輸入git init即可;其二直接運行git bash,然後cd到此目錄,執行git init

3、將文件添加到Git版本庫中,需要2個命令,依次執行。首先是git add filename,將文件添加到緩衝區,filename到底是什麼,可以使用git status查看一下。接下來執行git commit 即可將文件添加到Git版本庫中了,執行此命令時,會要求輸入一些提交信息,作爲本次提交的說明。

基本操作就是這麼多了,但僅僅是這麼點操作的話,毛的用處都沒有!要想發揮Git的威力,需要幾個高級的實用命令。

4、實用操作:

4.1、分支:分支是Git最厲害的地方之一。當進行第一次提交時,Git會自動生成一個主分支,如果你沒有對其進行命名(最好不要),Git會默認將此分支命名爲master。創建分支也很簡單,git branch name,新分支就創建好了,利用git checkout branch_name即可進行分支的切換了,速度極快,帶你體驗飛一般的感覺。如圖所示是新建了Branch分支,但是還未切換到此分支,HEAD指針指向Master分支(強行解釋一波:執行checkout命令後,HEAD指針將指向Branch,切換到哪個分支,HEAD就指向哪個,當前的工作就修改指向的分支的內容):


分支有啥用?假設一共有兩個分支,AB,倉庫中有多個文件,其中一個叫file。在分支A中對file進行了修改,提交。然後到分支B,又對file做了一部分修改,提交。此時切換回分支A,發現file還是A之前修改的樣子,B的修改並沒有影響到它。這就意味着如果你現在有一個軟件的穩定版,當你新建一個分支後,就可以在新分支上策馬奔騰了,而不會影響到穩定版,當分支實現了新功能或成功修復了bug,將分支合併到穩定分支,穩定分支就多了剛剛寫的功能或修復了剛剛存在的bug!如圖爲在Branch上做了修改,此時HEAD指向Branch,切換回Master時,文件還是之前的狀態:


使用分支修改Bug或者添加功能的基本工作流程爲:


分支是神器,要常用,Pro Git中介紹分支原理時表明:Git的分支是利用文件快照實現的,簡單的理解就是爲每建立一個分支,文件就會全部快照一份,然後若你對文件有修改,則在該分支中,新建一個新文件,若沒有修改,在該分支中僅保存原文件的指針。個人一點薄見:文件快照相當於對磁盤狀態進行一次存儲,新的分支另行開闢一塊磁盤空間,所有修改都在此空間進行。(然後在來一波強行解釋:HEAD指針是什麼?可以將每次Git的每個分支想象爲一個鏈表(或者棧什麼的),鏈表的值域就是每次執行提交命令時的文件快照,而HEAD指針就指向此鏈表)。

4.2、回溯:假如時光能倒流,想想你要做什麼?......省略九萬九千字,別想了,都是夢~~,然而在Git裏,還真可以。git resetgit checkout --git revert三個命令,可以輕鬆回到之前的某個版本。藉助HEAD指針即可,如git reset HEAD~2,就回到了上上一個提交版本,是不是很拽,具體內容還有很多,在此不加贅述,資料多得很,自己也要注意多積累。

GitHub:

Git的命令還有很多,需要在實際項目中多多實踐才行。版本管理只用Git就可以了,但是往往團隊合作纔是關鍵,所以Git的關於遠程倉庫的命令也是重點需要掌握的內容。此時GitHub的作用就來了,至於什麼賬號註冊啊,SSH Key生成和添加等,已有超超超詳細的文擋進行了說明,不加贅述(遠程倉庫不一定非要用GitHub,公司可能會有自己的服務器,但只是殊途而已,技術和歸宿沒有本質區別)。總結一下我個人練習時的流程:


本次總結就到這裏吧,好累,突然發現這幾天看東西原來真不少,有些東西沒總結進來,結合筆記複習!我相信參加工作後,肯定會用到Git和GitHub,現仍處於自我摸索(俗稱瞎搞)、熟悉命令階段,寫這個階段性的總結以便日後回顧。希望到時候可以老臉一紅,然後嘆一句:臥槽當年你好菜啊!哈哈,豈不美哉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章