這篇文檔的目的是:讓使用Git更輕鬆。
看完這篇文檔你能做到的是:
1、簡單的用Git管理項目。
2、怎樣既要開發又要處理髮布出去的版本bug情況。
SourceTree是一個免費的Git圖形化管理工具,mac下也可以安裝。
下載地址:https://www.sourcetreeapp.com/
參考:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
http://www.ruanyifeng.com/blog/2012/07/git.html
基本功能
一 克隆Clone
二 提交Commit和推送Push
三 拉取pull和獲取fetch
四 版本回退reset
五 檢出checkout
六 標籤Tag
一 從遠程庫克隆Clone
Clone就是將遠程庫的代碼拷貝到本地。
填寫遠程和本地項目路徑,點擊“克隆“。這樣就會將服務器上項目代碼克隆到本地了。
-
git -c diff.mnemonicprefix=false -c core.quotepath=false clone --recursive https://git.coding.net/gamedaybyday/HelloGit.git D:\Git\HelloGit
-
Cloning into 'D:\Git\HelloGit'...
二 提交Commit和推送Push
commit將工作空間修改提交到本地庫。
push將本地庫修改提交到遠程庫。
新建一個test.txt來測試,任意改點什麼。在文件狀態處可查看,紅色爲刪除,藍色爲增加部分。
將修改後文件由未暫存文件,勾選到已暫存文件。
選擇提交
添加修改日誌。
這裏如果勾選“立即推送變更”則會同時執行commit和push。
git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\gzy\AppData\Local\Temp\ofkmvj0p.tft
這時,修改的代碼提交到了本地倉庫。sourcetree會提示有修改代碼尚未推送到遠程庫。
選擇推送。將本地倉庫推送push到遠程庫。
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master
三 拉取pull和獲取fetch
pull 從遠程拉取最新版本 到本地 自動合併 merge
fetch 從遠程獲取最新版本 到本地 不會自動合併 merge
虛線表示拉取到本地倉庫
實現表示拉取到本地倉庫,併合併到工作空間
-
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
-
From https://git.coding.net/gamedaybyday/HelloGit
-
9664a7c..42c8f2e master -> origin/master
-
-
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
-
-
git -c diff.mnemonicprefix=false -c core.quotepath=false pull origin master
-
From https://git.coding.net/gamedaybyday/HelloGit
-
* branch master -> FETCH_HEAD
假如有衝突,使用解決衝突。
四 版本回退reset
reset 將當前版本回退到選定的版本
git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q --mixed 657cf95e9925724ea54f81c2dc03f09ab025d571
五 檢出checkout
checkout 創建分支,切換分支。
checkout時,如果只有當前分支,則會新建一個分支。
如果是兩個分支間checkout,則會切換分支。
將項目從最新checkout到modify11:46,這時HEAD指向到modify11:46這個版本。
-
git -c diff.mnemonicprefix=false -c core.quotepath=false checkout 657cf95e9925724ea54f81c2dc03f09ab025d571
-
Note: checking out '657cf95e9925724ea54f81c2dc03f09ab025d571'.
當修改這個checkout的分支時。可以看到從modify11:46checkout後,修改的提交會忽略到modify11:47以後的提交。
相當於checkout命令 創建了新分支,並切換到了這個分支。
但是這個分支是不存在的。要新建一個分支。
六 標籤Tag
tag 就是給這個版本打個標記,方便用於識別查看等操作。
git -c diff.mnemonicprefix=false -c core.quotepath=false tag -a -m "" tag3
操作詳解
1、從Git服務器上獲取項目
2、提交我的修改項目
3、發佈新版本
4、修復bug
分支管理
- Master 遠程主分支
- Dev 遠程開發分支,主要用來進行協同開發
- My 本地主分支
- Bug branch bug修改分支
- Feature branch 功能分支 命名格式:my-feature-login 本地主分支名 + feature + 功能名稱
理論上本地功能分支和bug分支都是要先合併到本地主分支,然後再合併到本地dev分支,確定沒有衝突後,推送到遠程分支。
add---
配置忽略文件
利用.gitignore過濾文件,如編譯過程中的中間文件,等等,這些文件不需要被追蹤管理。
.gitignore文件只對還沒有加入版本管理的文件起作用,如果之前已經用git把這些文件納入了版本庫,就不起作用了
使用sourcetree添加忽略文件的方法:
正常情況下,管理員創建項目後需要直接將忽略文件創建好。創建方法如圖:
按照如上步驟操作即可編輯衝突文件。
衝突文件規則:
忽略文件夾(如:bin、obj):
obj/
bin/
某目錄下的所有.txt文件,
obj/*.txt
開發的過程中可能遇到一些忽略文件中未添加的文件,此時需要開發者自行添加忽略文件,添加方法如下:
之前已經介紹過未進行版本控制的或者受版本控制的文件,在sourcetree的“文件狀態” 標籤中查找,如圖所示:
鼠標右鍵要忽略的文件,點擊“忽略”,選擇忽略的模式,即可將文件進行忽略,如圖所示: