1. 程式人生 > >版本控制之git學習

版本控制之git學習

  最近學習了一下版本控制中比較符合開發者氣質的Git,這裡做一個總結。一來梳理所學的內容;二來也作為起點後續繼續豐富。學習的方式主要為網路學習和個人實踐。推薦兩個學習網頁,互相參考必有所成。

  部落格園:http://www.cnblogs.com/best/archive/2017/09/07/7474442.html

  廖雪峰:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  ------------------------------------------------------------------------------------------------------------

  1、工具準備

    a、下載Windows GUI:https://git-scm.com/ 【安裝完成後,滑鼠右鍵中將會出現git bash here和git gui here;這裡我們主要用git bash here,這裡類似於Linux命令,git + cmd】

    b、在github上註冊一個賬號:https://github.com

    b、小烏龜(工作中可能要):https://download.tortoisegit.org/tgit/2.5.0.0/

    d、smart git工具,windows模式助你完成命令難處理之處

  2、實踐準備

    a、桌面上新建一個資料夾(專案:test),選中資料夾右擊後,選擇git bash here .

    b、為test建立git版本管理,執行: git init【你會在test資料夾下,看到隱藏資料夾.git,裡面有HEAD/refs等。這就是用來進行版本控制的東西】

  3、基本知識

    a、Git含遠端(github)在內,可以分為4個區。I(工作區-WorkSpace,即為test除了.git檔案之外的部分)、II(暫存區-Stage/Index,即為.git中的Index部分)、III(本地版本區-Local Resopsity)、IV(遠端版本區-github上)

    b、個人在工作區進行寫程式碼和文件,完成後提交到暫存區,在提交到本地版本區,無誤後再提交到遠端端。由於專案本身可能是多人協作,大家都可以從遠端端clone專案文件到本地開發。Git提供了不錯的分支、標籤和版本切換。基本所有過程可追溯、可逆。

    c、git中的檔案型別:Untracted(專案新檔案)、Unmodified(專案原始檔案)、Modified(專案被修改檔案)、Staged(暫存區中檔案)。檢視檔案狀態:git status [filename],系統會告訴你可能用到的一些指令碼提示。

  4、常用命令

    git status:檢視檔案狀態

    git add . 將當前目錄下檔案新增到stage中

    git commit -m "mesage"  提交到本地庫,註釋資訊:message

    git checkout -b bname  切換分支,如果不存在則新建

    git log --pretty=oneline 檢視本地日誌歷史,當前所在會有Head指向

  5、場景1(團隊協作)

    a.git clone ** //克隆程式碼待本地

    b.git checkout -b *** //新建分支

    c.develop or modify

    d.git add . //加入到stage中

    e.git commit -m "message" //提交到本地庫

    f.review程式碼

    g.git checkout  master 切換到主分支

    h.git pull  更新程式碼

    i.git checkout ***切換分支

    j.git merge master //把master分支內容合併到當前分支中。

    k.git push origin ***  推送到遠端庫

  6.場景2(修復bug)

    a.git add .

    b.git stash  //放入臨時中

    c.git checkout bugBranch 

    d.git pull --rebase origin master

    e.fix bug

    f.git add.

    g.git commit -m "message"

    h.git push

    i.git checkout ***

    j.git stash pop //切換回工作分支,並回復臨時儲存的工作場景