工作中多人使用版本控制軟件協(xié)作開(kāi)發(fā),常見(jiàn)的應(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è)分支并在分支上開(kāi)發(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)槭堑谝淮翁峤?,Push前需要指定遠(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í)填寫(xiě)的遠(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è)分支并在分支上開(kāi)發(fā)建分支也是一個(gè)常用的操作,例如臨時(shí)修改bug、開(kāi)發(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功能
場(chǎng)景七:小張獲取小袁提交的分支使用Pull功能打開(kāi)更新窗口,點(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切換。
場(chǎng)景八:小張把分支合并到主干新功能開(kāi)發(fā)完成,體驗(yàn)很好,項(xiàng)目組決定把該功能合并到主干上。 切換到master分支,選擇Merge Changes
選擇要合并的分支,點(diǎn)擊Merge完成
|