剛使用git的時候,一臉茫(meng)然(bi),找了些資料看后才算稍微理解了些git??稍?a target="_blank" rel="nofollow">git圖解了解git工作原理。
git的基本使用
以移動端APP開發(fā)為例:
git clone <版本庫的網(wǎng)址> ? ? //將版本庫項目克隆到本地
cd /Users/用戶名/Desktop/本地庫目錄 ? ? //cd到本地庫目錄(每次的git命令操作前都必須先cd到本地庫目錄下)
git pull ? ? //拉取最新代碼,此步驟完成后,本地庫和版本庫內(nèi)容已同步,可以開始編輯本地庫
git status? ? //編輯完成后,可通過該命令當(dāng)前狀態(tài):1.本地沒有修改(nothing to commit, working tree clean),2.有修改但還沒add(Changes not staged for commit:和紅色提示modified:),3.有修改但已a(bǔ)dd未committed(Changes to be committed:和綠色提示modified:)
git branch ? ? //查看當(dāng)前所在分支(綠色為當(dāng)前)
git add . ? ? ?//添加
git commit -m "提交信息"? ? //提交
以上添加和提交也可合并做一句:git commit -am"提交信息"
git push ? ? //推送至版本庫
至此一次簡單的拉去和提交已經(jīng)完成,想知道提交記錄:
git log ? ? //查看提交記錄
然而正常工作中不可避免的會出現(xiàn)提交錯誤,所以就需要撤銷:
git commit --amend ? ? //修改上一次commit 的message
git reset --hard ? ? //撤銷提交
有時候還需要給本次提交打上標(biāo)簽,一般是記錄一個版本的完成:
git tag 標(biāo)簽內(nèi)容 ? //添加標(biāo)簽
git push --tags origin master ? ?//推送標(biāo)簽至版本庫
git rebase的使用
基礎(chǔ)的使用熟悉一段時間后,開始接觸rebase了,同樣對rebase也是一臉...此處推薦git rebase原理。
不管用哪種方式,基本套路相同,前面已經(jīng)注釋過,這里就直奔主題:????
1.先更新master到最新??????
cd 本地庫目錄
git checkout master
git pull origin master
2.????????開始開發(fā)task-1任務(wù)
git checkout -b task-1
????????????????git commit -am "提交信息"
/***或者
git add .
git commit -m"提交信息"
***/
3.rebase最新的??????master
git checkout master
git pull
git checkout task-1
git rebase master
/***
有沖突的時候,先解決沖突,然后
git add .
git rebase --continue
***/
git checkout master
git merge task-1
4.??將master推送到遠(yuǎn)程??????????
git push
5.刪除本地分支
git branch -d task-1
開發(fā)過程中如此重復(fù)回到第2步即可
git-folw的使用
git-flow是一個 git 擴(kuò)展集:
1.新建feature分支?
git flow feature start 名字? //將以develop分支為起點,建立并切換到"feature/名字"的分支
2.合并feature分支到develop
# 前提:當(dāng)前在上次建立的”feature/名字“分支下
git fetch origin? ? //獲取服務(wù)器上已經(jīng)更新的代碼,但不執(zhí)行合并
3.將當(dāng)前feature分支上的所有commit,在origin/develop為基礎(chǔ),打一系列的補(bǔ)丁
git rebase origin/develop
4.合并到本地的develop分支
git flow feature finish 名字
5.上傳代碼
git push origin develop
最后,推薦使用OSX 程序 Sourcetree, 是一個很好的git 界面客戶端,可以勾選rebase選項,也提供了 git-flow 的支持。