工作中多人使用版本控制軟件協(xié)作開發(fā),常見的應(yīng)用場景歸納如下:
假設(shè)小組中有兩個(gè)人,組長小張,組員小袁
場景一:小張創(chuàng)建項(xiàng)目并提交到遠(yuǎn)程Git倉庫
場景二:小袁從遠(yuǎn)程Git倉庫上獲取項(xiàng)目源碼
場景三:小袁修改了部分源碼,提交到遠(yuǎn)程倉庫
場景四:小張從遠(yuǎn)程倉庫獲取小袁的提交
場景五:小袁接受了一個(gè)新功能的任務(wù),創(chuàng)建了一個(gè)分支并在分支上開發(fā)
場景六:小袁把分支提交到遠(yuǎn)程Git倉庫
場景七:小張獲取小袁提交的分支
場景八:小張把分支合并到主干
下面來看以上各場景在IDEA中對應(yīng)的操作。
場景一:小張創(chuàng)建項(xiàng)目并提交到遠(yuǎn)程Git倉庫
創(chuàng)建好項(xiàng)目,選擇VCS - > Import into Version Control -> Create Git Repository
接下來指定本地倉庫的位置,按個(gè)人習(xí)慣指定即可,例如這里選擇了項(xiàng)目源代碼同目錄
點(diǎn)擊OK后創(chuàng)建完成本地倉庫,注意,這里僅僅是本地的。下面把項(xiàng)目源碼添加到本地倉庫。
下圖是Git與提交有關(guān)的三個(gè)命令對應(yīng)的操作,Add命令是把文件從IDE的工作目錄添加到本地倉庫的stage區(qū),Commit命令把stage區(qū)的暫存文件提交到當(dāng)前分支的倉庫,并清空stage區(qū)。Push命令把本地倉庫的提交同步到遠(yuǎn)程倉庫。
IDEA中對操作做了一定的簡化,Commit和Push可以在一步中完成。
具體操作,在項(xiàng)目上點(diǎn)擊右鍵,選擇Git菜單
因?yàn)槭堑谝淮翁峤?,Push前需要指定遠(yuǎn)程倉庫的地址。如下圖,點(diǎn)擊Define remote后,在彈出的窗口中輸入遠(yuǎn)程倉庫地址。
場景二:小袁從遠(yuǎn)程Git倉庫上獲取項(xiàng)目源碼
即克隆項(xiàng)目,操作如下:
輸入小張Push時(shí)填寫的遠(yuǎn)程倉庫地址
接下來按向?qū)Р僮鳎纯砂秧?xiàng)目從遠(yuǎn)程倉庫克隆到本地倉庫和IDE工作區(qū)。
這個(gè)操作和首次提交的流程基本一致,分別是 Add -> Commit -> Push。請參考場景一
獲取更新有兩個(gè)命令:Fetch和Pull,F(xiàn)etch是從遠(yuǎn)程倉庫下載文件到本地的origin/master,然后可以手動(dòng)對比修改決定是否合并到本地的master庫。Push則是直接下載并合并。如果各成員在工作中都執(zhí)行修改前先更新的規(guī)范,則可以直接使用Pull方式以簡化操作。
場景五:小袁接受了一個(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)建的分支僅僅在本地倉庫,如果想讓組長小張獲取到這個(gè)分支,還需要提交到遠(yuǎn)程倉庫。
切換到新建的分支,使用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,在本地倉庫中創(chuàng)建該分支。完成后在Local Branches區(qū)也會(huì)出現(xiàn)該分支的選項(xiàng),可以按上面的方法,點(diǎn)擊后選擇Checkout切換。
新功能開發(fā)完成,體驗(yàn)很好,項(xiàng)目組決定把該功能合并到主干上。
切換到master分支,選擇Merge Changes
選擇要合并的分支,點(diǎn)擊Merge完成