工作中多人使用版本控制軟件協(xié)作開發(fā)形葬,常見的應(yīng)用場(chǎng)景歸納如下:
假設(shè)小組中有兩個(gè)人,組長(zhǎng)小張板丽,組員小袁
場(chǎng)景一:小張創(chuàng)建項(xiàng)目并提交到遠(yuǎn)程Git倉(cāng)庫(kù)
場(chǎng)景二:小袁從遠(yuǎn)程Git倉(cāng)庫(kù)上獲取項(xiàng)目源碼
場(chǎng)景三:小袁修改了部分源碼扔亥,提交到遠(yuǎn)程倉(cāng)庫(kù)
場(chǎng)景四:小張從遠(yuǎn)程倉(cāng)庫(kù)獲取小袁的提交
場(chǎng)景五:小袁接受了一個(gè)新功能的任務(wù)挂签,創(chuàng)建了一個(gè)分支并在分支上開發(fā)
場(chǎng)景六:小袁把分支提交到遠(yuǎn)程Git倉(cāng)庫(kù)
場(chǎng)景七:小張獲取小袁提交的分支
場(chǎng)景八:小張把分支合并到主干
下面來(lái)看以上各場(chǎng)景在IDEA中對(duì)應(yīng)的操作兑凿。
場(chǎng)景一:小張創(chuàng)建項(xiàng)目并提交到遠(yuǎn)程Git倉(cāng)庫(kù)
創(chuàng)建好項(xiàng)目,選擇VCS - > Import into Version Control -> Create Git Repository
接下來(lái)指定本地倉(cāng)庫(kù)的位置茵瘾,按個(gè)人習(xí)慣指定即可礼华,例如這里選擇了項(xiàng)目源代碼同目錄
點(diǎn)擊OK后創(chuàng)建完成本地倉(cāng)庫(kù),注意拗秘,這里僅僅是本地的圣絮。下面把項(xiàng)目源碼添加到本地倉(cāng)庫(kù)。
下圖是Git與提交有關(guān)的三個(gè)命令對(duì)應(yīng)的操作雕旨,Add命令是把文件從IDE的工作目錄添加到本地倉(cāng)庫(kù)的stage區(qū)扮匠,Commit命令把stage區(qū)的暫存文件提交到當(dāng)前分支的倉(cāng)庫(kù),并清空stage區(qū)凡涩。Push命令把本地倉(cāng)庫(kù)的提交同步到遠(yuǎn)程倉(cāng)庫(kù)棒搜。
IDEA中對(duì)操作做了一定的簡(jiǎn)化,Commit和Push可以在一步中完成活箕。
具體操作力麸,在項(xiàng)目上點(diǎn)擊右鍵,選擇Git菜單
因?yàn)槭堑谝淮翁峤挥琍ush前需要指定遠(yuǎn)程倉(cāng)庫(kù)的地址克蚂。如下圖,點(diǎn)擊Define remote后筋讨,在彈出的窗口中輸入遠(yuǎn)程倉(cāng)庫(kù)地址埃叭。
場(chǎng)景二:小袁從遠(yuǎn)程Git倉(cāng)庫(kù)上獲取項(xiàng)目源碼
即克隆項(xiàng)目,操作如下:
輸入小張Push時(shí)填寫的遠(yuǎn)程倉(cāng)庫(kù)地址
接下來(lái)按向?qū)Р僮飨ず保纯砂秧?xiàng)目從遠(yuǎn)程倉(cāng)庫(kù)克隆到本地倉(cāng)庫(kù)和IDE工作區(qū)赤屋。
場(chǎng)景三:小袁修改了部分源碼立镶,提交到遠(yuǎn)程倉(cāng)庫(kù)
這個(gè)操作和首次提交的流程基本一致,分別是 Add -> Commit -> Push益缎。請(qǐng)參考場(chǎng)景一
場(chǎng)景四:小張從遠(yuǎn)程倉(cāng)庫(kù)獲取小袁的提交
獲取更新有兩個(gè)命令:Fetch和Pull谜慌,F(xiàn)etch是從遠(yuǎn)程倉(cāng)庫(kù)下載文件到本地的origin/master,然后可以手動(dòng)對(duì)比修改決定是否合并到本地的master庫(kù)莺奔。Push則是直接下載并合并欣范。如果各成員在工作中都執(zhí)行修改前先更新的規(guī)范,則可以直接使用Pull方式以簡(jiǎn)化操作令哟。
場(chǎng)景五:小袁接受了一個(gè)新功能的任務(wù)恼琼,創(chuàng)建了一個(gè)分支并在分支上開發(fā)
建分支也是一個(gè)常用的操作,例如臨時(shí)修改bug屏富、開發(fā)不確定是否加入的功能等晴竞,都可以創(chuàng)建一個(gè)分支,再等待合適的時(shí)機(jī)合并到主干狠半。
創(chuàng)建流程如下:
選擇New Branch并輸入一個(gè)分支的名稱
創(chuàng)建完成后注意IDEA的右下角噩死,如下圖,Git: wangpangzi_branch表示已經(jīng)自動(dòng)切換到wangpangzi_branch分支神年,當(dāng)前工作在這個(gè)分支上已维。
點(diǎn)擊后彈出一個(gè)小窗口,在Local Branches中有其他可用的本地分支選項(xiàng)已日,點(diǎn)擊后選擇Checkout即可切換當(dāng)前工作的分支垛耳。
如下圖,點(diǎn)擊Checkout
注意飘千,這里創(chuàng)建的分支僅僅在本地倉(cāng)庫(kù)堂鲜,如果想讓組長(zhǎng)小張獲取到這個(gè)分支,還需要提交到遠(yuǎn)程倉(cāng)庫(kù)护奈。
場(chǎng)景六:小袁把分支提交到遠(yuǎn)程Git倉(cāng)庫(kù)
切換到新建的分支缔莲,使用Push功能
使用Pull功能打開更新窗口,點(diǎn)擊Remote欄后面的刷新按鈕逆济,會(huì)在Branches to merge欄中刷新出新的分支酌予。這里并不想做合并,所以不要選中任何分支奖慌,直接點(diǎn)擊Pull按鈕完成操作抛虫。
更新后,再點(diǎn)擊右下角简僧,可以看到在Remote Branches區(qū)已經(jīng)有了新的分支建椰,點(diǎn)擊后在彈出的子菜單中選擇Checkout as new local branch,在本地倉(cāng)庫(kù)中創(chuàng)建該分支岛马。完成后在Local Branches區(qū)也會(huì)出現(xiàn)該分支的選項(xiàng)棉姐,可以按上面的方法,點(diǎn)擊后選擇Checkout切換笛洛。
新功能開發(fā)完成乃坤,體驗(yàn)很好苛让,項(xiàng)目組決定把該功能合并到主干上。
切換到master分支湿诊,選擇Merge Changes
選擇要合并的分支,點(diǎn)擊Merge完成