最近學習了一下版本控制中比較符合開發者氣質的Git,這裏作一個總結。一來梳理所學的內容;二來也做爲起點後續繼續豐富。學習的方式主要爲網絡學習和我的實踐。推薦兩個學習網頁,互相參考必有所成。html
博客園:http://www.cnblogs.com/best/archive/2017/09/07/7474442.htmlgit
廖雪峯:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000github
------------------------------------------------------------------------------------------------------------windows
一、工具準備bash
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模式助你完成命令難處理之處fetch
二、實踐準備
ui
a、桌面上新建一個文件夾(項目:test),選中文件夾右擊後,選擇git bash here .
b、爲test建立git版本管理,執行: git init【你會在test文件夾下,看到隱藏文件夾.git,裏面有HEAD/refs等。這就是用來進行版本控制的東西】
三、基本知識
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],系統會告訴你可能用到的一些腳本提示。
四、經常使用命令
git status:查看文件狀態
git add . 將當前目錄下文件添加到stage中
git commit -m "mesage" 提交到本地庫,註釋信息:message
git checkout -b bname 切換分支,若是不存在則新建
git log --pretty=oneline 查看本地日誌歷史,當前所在會有Head指向
git merge master 在本地分支合併master代碼
五、場景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 //切換回工做分支,並回復臨時保存的工做場景
7. 場景3 (分支管理:把本地的替換成遠程的)
git fetch --all git reset --hard origin/master (這裏master要修改成對應的分支名) git pull