序言
很多小伙伴剛參與團(tuán)隊(duì)項(xiàng)目開發(fā)的時(shí)候一定會遇到一個(gè)項(xiàng)目管理的問題——git版本控制
老大:
- “項(xiàng)目在git上如捅,你拉下來棍现。然后新建一個(gè)分支開發(fā)就好了【登玻”
相信很多剛?cè)胄械男』锇槁牭竭@句話就一臉懵逼己肮,“git是什么?拉下來悲关?新建分支又是什么鬼”谎僻,機(jī)智的小伙伴一定不會忘記進(jìn)行這樣一個(gè)操作——谷歌。
這時(shí)候小伙伴才恍然大悟寓辱,git原來是一個(gè)項(xiàng)目管理工具艘绍,團(tuán)隊(duì)開發(fā)共同維護(hù)代碼的倉庫,也方便開發(fā)人員進(jìn)行版本控制讶舰。但是看到又那么多命令要學(xué)習(xí)鞍盗,又看不懂報(bào)錯(cuò)信息,還有代碼沖突跳昼,合并代碼等操作般甲,小伙伴一定會感到非常的恐懼和困惑。
小伙伴:
- “我怎么上傳代碼呀鹅颊?git add ?;git commit?”
- “為什么我按照教程輸入命令了還報(bào)錯(cuò)敷存?”
- “這是個(gè)什么鬼錯(cuò)誤信息,百度一下解決方案堪伍?還是不行锚烦。”
- “怎么提示我沒有權(quán)限提交代碼呀帝雇?”
- ....
好吧涮俄,今天的內(nèi)容就分享一下,我在項(xiàng)目開發(fā)過程中如何使用phpstorm IDE圖形化操作來進(jìn)行版本控制(個(gè)人一開始是用的命令行,但是為了方便直觀的操作和解決問題尸闸,我習(xí)慣于圖形化操作哈)彻亲,然后會把我遇到的坑跟大家標(biāo)記出來,ε=(′ο`*)))唉吮廉,都是經(jīng)驗(yàn)之談鞍ⅰ!
教程
前期準(zhǔn)備
首先宦芦,你先下載個(gè)phpstorm的工具宙址,安裝好git,擁有一個(gè)項(xiàng)目的代碼的上傳下載權(quán)限(假設(shè)developer身份调卑,不是項(xiàng)目擁有者)
新建項(xiàng)目
你的項(xiàng)目經(jīng)理新建了一個(gè)項(xiàng)目抡砂,并拉你為developer
- 項(xiàng)目經(jīng)理:“xx項(xiàng)目已經(jīng)創(chuàng)建大咱,你新建個(gè)分支可以提交代碼”
這時(shí)候你要勇敢的告訴你的大佬
- “項(xiàng)目(master分支)是空的,麻煩初始化下master注益,我這邊才有權(quán)限將新建的分支提交上去”(第一個(gè)坑)
項(xiàng)目初始化中
這部分就用了命令行來進(jìn)行徽级,跟后面的IDE操作來個(gè)對比。
新建分支開發(fā)
好啦聊浅,小伙伴這時(shí)候你就可以把初始化項(xiàng)目拉下來,新建分支现使,編輯代碼低匙,添加,提交碳锈,上傳顽冶。
- 小伙伴:“可是我現(xiàn)在還不知道怎么做,能不能說詳細(xì)一點(diǎn)呢售碳,或者你操作一遍强重?”
好吧,誰叫你們是新手呢贸人?那我就帶著你們操作间景,你可要看清楚啊,不明白的可以做下筆記艺智,反復(fù)練習(xí)倘要。
- “首先,在你本地目錄十拣,把項(xiàng)目代碼克隆下來封拧,就想剛剛那樣”
- “git clone https://gitlab.com/dgutbenny/test201903010.g”
- “用phpstorm打開項(xiàng)目,如圖”
新建分支
- “有提示夭问,Branch dev was created”
你在瘋狂敲代碼中泽西。。缰趋。
- “如果紅框是紅色的捧杉,表示還未添加(add),這時(shí)候你可以右鍵選擇git埠胖,選擇add糠溜,添加完成變成綠色未提交(commit)狀態(tài)”(第二個(gè)坑)
提交上傳代碼
- “紅框,你可選擇你要提交的代碼文件(比如本地你改了某個(gè)文件直撤,但你還不想上傳到git倉庫上去給別人看到非竿,你可不勾選)”
- “籃框,此次提交代碼的注釋(千萬一定要加注釋谋竖,并且寫清楚你提交的內(nèi)容是什么红柱,千萬不要是test承匣,fix,優(yōu)化這類模糊詞語)”(第三個(gè)坑)
- “綠框锤悄,你可以在這里review每一個(gè)文件的代碼(這是一步比較重要的步驟韧骗,很多人都特別自信自己寫的代碼,忽略找一個(gè)review的操作是錯(cuò)誤的)”
- “黃框零聚,可以對你提交的代碼格式進(jìn)行一些處理(可以百度下具體的意思袍暴,當(dāng)然,你英語不錯(cuò)的話另外)”
捕獲線上分支
這時(shí)候隶症,你已經(jīng)寫代碼并上傳了代碼政模,
- 小伙伴很開心樣子:“大佬,我代碼寫好了蚂会,在dev分支淋样,你看下代碼,沒問題就提測”
- 大佬:“好的”
現(xiàn)在是在大佬本地上的IDE
- “提示胁住,F(xiàn)etched successfully”趁猴,然后查看分支
解決沖突問題
“為了解決沖突,首先咱們先制造點(diǎn)沖突才有可能來解決沖突是?(′???`?)嘛”彪见,我先在本地是另外一個(gè)目錄儡司,克隆下項(xiàng)目代碼,修改了代碼hello benny企巢,然后進(jìn)行上線續(xù)的代碼添加枫慷、提交、上傳操作浪规。
哈哈或听,小伙伴并不知道大佬改了代碼,自己檢查了一會代碼后笋婿,發(fā)現(xiàn)有個(gè)小地方還是要改的誉裆,改完代碼后進(jìn)行提交(沒有重新拉取‘pull’線上新代碼)。(第四個(gè)坑)
命令行顯示錯(cuò)誤
phpstorm顯示沖突代碼
可進(jìn)行如下操作:git pull缸濒,解決沖突
- “左邊是本地代碼足丢,中間是解決沖突后的結(jié)果代碼,右邊是線上代碼(他人代碼)”(我們?nèi)”镜氐拇a為最新代碼庇配,Apply斩跌,然后提交代碼)
合并代碼
項(xiàng)目開發(fā)的時(shí)候,我們是一直在dev分支上進(jìn)行的捞慌,現(xiàn)在要把dev分支上的內(nèi)容合并到master分支準(zhǔn)備代碼上線耀鸦。
步驟如下:
- 切換到master分支
- 拉取master最新代碼(dev分支上的代碼也要最新的)(第五個(gè)坑)
- 執(zhí)行命令合并(git merge dev)
結(jié)語
是不是很神奇,是不是學(xué)到了點(diǎn)東西?開題的幾個(gè)疑問你都解決了嗎袖订?沒有可以回過頭翻翻重復(fù)看幾遍哦氮帐。總的來說洛姑,實(shí)踐才是最好的學(xué)習(xí)方式上沐,沒事下班了多多總結(jié)自己在項(xiàng)目開發(fā)中的經(jīng)驗(yàn)也是一種美。另外楞艾,有任何疑問可以私底下交流哦参咙。