1、養(yǎng)成建分支的好習(xí)慣
a、本地建分支:
git branch dev(本地分支名)
切換本地分支到dev
git checkout dev
兩個(gè)命令可以一起實(shí)現(xiàn)用: git checkout -b dev? 意思就是新建本地分支dev并切換到本地分支dev
刪除本地分支:
git branch -d dev(本地分支名)
強(qiáng)制刪除用D
b、遠(yuǎn)程建分支
git push origin master(本地任意一個(gè)分支):yuancheng(要新建的遠(yuǎn)程分支名)
其實(shí)尼也可以直接在git官網(wǎng)上新建一個(gè)遠(yuǎn)程分支
刪除遠(yuǎn)程分支:
git push origin --delete yuancheng(遠(yuǎn)程分支名)
c、git提交的常規(guī)操作
新建本地分支進(jìn)行開發(fā)
git checkout -b dev
從遠(yuǎn)程分支克隆到本地:
git clone git地址?
如果是克隆遠(yuǎn)程分支的代碼到本地則(一般來(lái)說(shuō)我們是在自己的遠(yuǎn)程分支開發(fā)的,push之后再到git官網(wǎng)提merge合并到遠(yuǎn)程master):
git clone -b 遠(yuǎn)程分支名 git地址
把所有的文件和文件夾從功能工作區(qū)提交到暫存區(qū)(一把的編輯器都會(huì)提示是否add,如果add的話其實(shí)就可以不用這一步了)
git add .
當(dāng)然也可以單獨(dú)提交某個(gè)文件或者文件夾如:
git add test.txt? ?就是把test.txt文件提交到暫存區(qū)
撤銷上一步提交(add);
git reset HEAD
從遠(yuǎn)程倉(cāng)庫(kù)更新代碼:
git pull origin 遠(yuǎn)程分支名:本地分支名
如:git pull origin master:bendi
此時(shí)pull的時(shí)候可能會(huì)遇到問(wèn)題,是因?yàn)樽钚碌拇a和自己本地代碼有沖突,需要消除差異執(zhí)行此命令:
git pull origin master(需要pull的遠(yuǎn)程分支名) --allow-unrelated-histories。
執(zhí)行完之后有看日志有沖突解決沖突就好了。解決沖突其實(shí)就是打開有沖突的文件,選擇自己要保留的代碼刪除不需要的代碼即可。
把暫存區(qū)文件提交到版本庫(kù)
git commit -m "添加提交記錄"
撤銷commit:
git reset --soft HEAD
如果想同時(shí)撤銷commit和add操作可以用如下命令:
git reset --hard HEAD
查看add提交狀態(tài):
git status? ?
簡(jiǎn)單來(lái)說(shuō)就是黃色的就是add之后的文件,紅色就是沒(méi)有add的文件
commit之后就可以把本地分支的代碼merge到本地master了
切換到本地master:
git checkout master
然后merge本地分支dev
git merge dev
最后就是把本地代碼推送到遠(yuǎn)程分支了
git push origin master(本地):遠(yuǎn)程分支
如果遠(yuǎn)程沒(méi)有分支的話直接推送到遠(yuǎn)程master就直接用:
git push origin master(本地):master(遠(yuǎn)程)
然后到git官網(wǎng)提merge使自己的遠(yuǎn)程分支代碼合并到遠(yuǎn)程分支master。有權(quán)限的管理員同意merge之后,就齊活了!
2、解決疑難雜癥
a、git stash的使用
其實(shí)我們經(jīng)常會(huì)遇到這樣一個(gè)問(wèn)題,就是我們?cè)谧约旱谋镜胤种祥_發(fā)某個(gè)功能但是還沒(méi)開發(fā)完,這是來(lái)了一個(gè)bug需要我們改一下,所以我們需要重新再本地新建一個(gè)bug分支。但是直接新建分支的話發(fā)現(xiàn)bug分支上還是有dev分支開發(fā)的代碼,就不得不完成功能在改bug了。所以這個(gè)時(shí)候我們只需要用:
git stash
就可以把開發(fā)的代碼隱藏起來(lái)了,這個(gè)時(shí)候再新建一個(gè)本地分支就可以改bug了。我們改完bug之后就可以按照常規(guī)操作提交代碼了。此時(shí)我們需要繼續(xù)開發(fā)功能,只需要切到dev分支執(zhí)行:
git stash pop
就可以恢復(fù)之前隱藏起來(lái)的代碼了
哈哈!? git stash 沒(méi)有講太深,想充分了解就自己百度補(bǔ)充下吧!
b、解決沖突無(wú)法合入的問(wèn)題
把代碼拉取到本地分支然后手動(dòng)解決沖突再合入主干再推送遠(yuǎn)程分支
1、拉取遠(yuǎn)程分支并創(chuàng)建本地分支:看這里
git fetch origin 遠(yuǎn)程分支:本地分支名字
這種方式不會(huì)切換到本地分支,目前還在當(dāng)前分支,需要手動(dòng)git checkout
2、使用該方式會(huì)在本地新建分支x,并自動(dòng)切換到該本地分支x。
git checkout -b 本地分支名x origin/遠(yuǎn)程分支名x
解決掉本地分支和本地主干的沖突,然后再合入主干,push到遠(yuǎn)程分支