學習一下sourcetree使用git
目錄
一 克隆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