版本控制之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 //切換回工作分支,並回復臨時儲存的工作場景