摘自:《一個小時學會Git》
工作中多人使用版本控制軟件協作開發,常見的應用場景歸納如下:
假設小組中有兩個人,組長蓋茨,組員艾倫
場景一:蓋茨創建項目並提交到遠程Git倉庫
場景二:艾倫從遠程Git倉庫上獲取項目源碼
場景三:艾倫修改了部分源碼,提交到遠程倉庫
場景四:蓋茨從遠程倉庫獲取艾倫的提交
場景五:艾倫接受了一個新功能的任務,創建了一個分支並在分支上開發
場景六:艾倫把分支提交到遠程Git倉庫
場景七:蓋茨獲取艾倫提交的分支
場景八:蓋茨把分支合併到主幹
下面來看以上各場景在IDEA中對應的操作。
場景一:蓋茨創建項目並提交到遠程Git倉庫
在IDEA中配置Git
測試環境是否正常
創建好項目,這裏創建了一個Maven項目,結構如下,當然可以是任意項目:
選擇VCS - > Enable Version Control Integration,允許將項目集成到版本控制器中
選擇版本控制器類型
完成後當前項目就變成一個Git項目,是工作空間
點擊OK後創建完成本地倉庫,注意,這裏僅僅是本地的。下面把項目源碼添加到本地倉庫。
下圖是Git與提交有關的三個命令對應的操作,Add命令是把文件從IDE的工作目錄添加到本地倉庫的stage區,Commit命令把stage區的暫存文件提交到當前分支的倉庫,並清空stage區。Push命令把本地倉庫的提交同步到遠程倉庫。
IDEA中對操作做了一定的簡化,Commit和Push可以在一步中完成。
具體操作,在項目上點擊右鍵,選擇Git菜單,如果使用Add則將文件從工作空間提交到暫存庫,Commit Directory則是同時完成提交到暫存與本地倉庫。
選擇要提交的文件,填寫消息
將本地倉庫的內容提交到遠程倉庫
定義遠程地址的別名
輸入名稱與URL
點擊push將本地倉庫的內容推送到遠程服務器
提示Push Successful就成功了
提交後的遠程庫
場景二:艾倫從遠程Git倉庫上獲取項目源碼
即克隆項目,操作如下:
輸入蓋茨Push時填寫的遠程倉庫地址
填寫倉庫地址、要克隆到的父目錄與項目目錄
接下來按嚮導操作,即可把項目從遠程倉艾倫隆到本地倉庫和IDE工作區。
當提示簽出成功點擊打開就可以看到項目了
下載到本地的文件
其它方法
場景三:艾倫修改了部分源碼,提交到遠程倉庫
這個操作和首次提交的流程基本一致,分別是 Add -> Commit -> Push。請參考場景一
添加一個類,並提交
提交到本地倉庫
提交到遠程倉庫
場景四:蓋茨從遠程倉庫獲取艾倫的提交
選擇分支
場景五:艾倫接受了一個新功能的任務,創建了一個分支並在分支上開發
建分支也是一個常用的操作,例如臨時修改bug、開發不確定是否加入的功能等,都可以創建一個分支,再等待合適的時機合併到主幹。
創建流程如下:
選擇New Branch並輸入一個分支的名稱
創建完成後注意IDEA的右下角,如下圖,Git: dev表示已經自動切換到dev分支,當前工作在這個分支上。
點擊後彈出一個小窗口,在Local Branches中有其他可用的本地分支選項,點擊後選擇Checkout即可切換當前工作的分支(見場景7操作切換其他分支)。
如下圖,點擊Checkout
注意,這裏創建的分支僅僅在本地倉庫,如果想讓組長蓋茨獲取到這個分支,還需要提交到遠程倉庫。
場景六:艾倫把分支提交到遠程Git倉庫
切換到新建的分支,使用Push功能
提交到遠程
艾倫將新開發的功能提交到遠程
提交到遠程
場景七:蓋茨獲取艾倫提交的分支
使用Pull功能打開更新窗口,點擊Remote欄後面的刷新按鈕,會在Branches to merge欄中刷新出新的分支。這裏並不想做合併,所以不要選中任何分支,直接點擊Pull按鈕完成操作。
更新後,再點擊右下角,可以看到在Remote Branches區已經有了新的分支,點擊後在彈出的子菜單中選擇Checkout as new local branch,在本地倉庫中創建該分支。完成後在Local Branches區也會出現該分支的選項,可以按上面的方法,點擊後選擇Checkout切換。
切換遠程分支:
切換本地分支:
場景八:蓋茨把分支合併到主幹
新功能開發完成,體驗很好,項目組決定把該功能合併到主幹上。
切換到master分支,選擇Merge Changes
選擇要合併的分支,點擊Merge完成