IDEA版本控制工具VCS中使用Git,以及快捷鍵總結(不使用命令)
場景介紹:
工作中多人使用版本控制軟體協作開發,常見的應用場景歸納如下:
假設小組中有兩個人,組長小張,組員小袁
場景一:小張建立專案並提交到遠端Git倉庫
場景二:小袁從遠端Git倉庫上獲取專案原始碼
場景三:小袁修改了部分原始碼,提交到遠端倉庫
場景四:小張從遠端倉庫獲取小袁的提交
場景五:小袁接受了一個新功能的任務,建立了一個分支並在分支上開發
場景六:小袁把分支提交到遠端Git倉庫
場景七:小張獲取小袁提交的分支
場景八:小張把分支合併到主幹
下面來看以上各場景在IDEA中對應的操作。
場景一:小張建立專案並提交到遠端Git倉庫
建立好專案,選擇VCS - > Import into Version Control -> Create Git Repository
接下來指定本地倉庫的位置,按個人習慣指定即可,例如這裡選擇了專案原始碼同目錄
點選OK後建立完成本地倉庫,注意,這裡僅僅是本地的。下面把專案原始碼新增到本地倉庫。
下圖是Git與提交有關的三個命令對應的操作,Add命令是把檔案從IDE的工作目錄新增到本地倉庫的stage區,Commit命令把stage區的暫存檔案提交到當前分支的倉庫,並清空stage區。Push命令把本地倉庫的提交同步到遠端倉庫。
IDEA中對操作做了一定的簡化,Commit和Push可以在一步中完成。
具體操作,在專案上點選右鍵,選擇Git選單
因為是第一次提交,Push前需要指定遠端倉庫的地址。如下圖,點選Define remote後,在彈出的視窗中輸入遠端倉庫地址。
場景二:小袁從遠端Git倉庫上獲取專案原始碼
即克隆專案,操作如下:
輸入小張Push時填寫的遠端倉庫地址
接下來按嚮導操作,即可把專案從遠端倉庫克隆到本地倉庫和IDE工作區。
場景三:小袁修改了部分原始碼,提交到遠端倉庫
這個操作和首次提交的流程基本一致,分別是 Add -> Commit -> Push。請參考場景一
場景四:小張從遠端倉庫獲取小袁的提交
獲取更新有兩個命令:Fetch和Pull,Fetch是從遠端倉庫下載檔案到本地的origin/master,然後可以手動對比修改決定是否合併到本地的master庫。Push則是直接下載併合並。如果各成員在工作中都執行修改前先更新的規範,則可以直接使用Pull方式以簡化操作。
場景五:小袁接受了一個新功能的任務,建立了一個分支並在分支上開發
建分支也是一個常用的操作,例如臨時修改bug、開發不確定是否加入的功能等,都可以建立一個分支,再等待合適的時機合併到主幹。
建立流程如下:
選擇New Branch並輸入一個分支的名稱
建立完成後注意IDEA的右下角,如下圖,Git: wangpangzi_branch表示已經自動切換到wangpangzi_branch分支,當前工作在這個分支上。
點選後彈出一個小視窗,在Local Branches中有其他可用的本地分支選項,點選後選擇Checkout即可切換當前工作的分支。
如下圖,點選Checkout
注意,這裡建立的分支僅僅在本地倉庫,如果想讓組長小張獲取到這個分支,還需要提交到遠端倉庫。
場景六:小袁把分支提交到遠端Git倉庫
切換到新建的分支,使用Push功能
場景七:小張獲取小袁提交的分支
使用Pull功能開啟更新視窗,點選Remote欄後面的重新整理按鈕,會在Branches to merge欄中刷新出新的分支。這裡並不想做合併,所以不要選中任何分支,直接點選Pull按鈕完成操作。
更新後,再點選右下角,可以看到在Remote Branches區已經有了新的分支,點選後在彈出的子選單中選擇Checkout as new local branch,在本地倉庫中建立該分支。完成後在Local Branches區也會出現該分支的選項,可以按上面的方法,點選後選擇Checkout切換。
場景八:小張把分支合併到主幹
新功能開發完成,體驗很好,專案組決定把該功能合併到主幹上。
切換到master分支,選擇Merge Changes
選擇要合併的分支,點選Merge完成
附上VCS導航項及其每一子項的拆解介紹,其中,加粗部分的選項是博主認為比較重要的。
- VCS
- Local history
- Show History ( 檢視本地歷史 )
- Show History for Selection ( 檢視所選檔案的本地歷史 )
- Put Label
- VCS Operations Popup ( 彈出版本控制操作窗 )
Alt + 反引號
- Commit Changes ( 提交修改,用Git話是提交到本地暫存區 )
Ctrl + K
- Update Project ( 專案更新,用Git話是從Remote拉取程式碼 )
Ctrl + T
- Integrate Project
- Refresh File Status
- Show Changes ( 檢視本地修改列表 )
Ctrl + Shift + Alt + D
- Git
- Commit File ( 進行提交修改 )
Ctrl + K
- Add ( 新增版本控制 )
Ctrl + Alt + A
- Annotate ( 顯示/隱藏註釋 )
- Show Current Revision( 檢視當前版本號 )
- Compare with the Same Repository Version ( 與當前遠端倉庫的當前檔案進行對比 )
- Compare with Latest Repository Version ( 與當前最新倉庫的當前檔案進行對比 )
- Compare with ( 彈出版本歷史列表進行選擇對比 )
- Compare With Branch ( 彈出分支進行選擇對比 )
- Show history ( 檢視當前檔案的Git提交修改歷史 )
- Show History for Selection ( 檢視當前選擇內容的Git提交修改歷史)
- Revert ( 撤銷修改 )
Ctrl + Alt + Z
- Resolve Conflicts
- Branches ( 分支相關操作 )
- Tag ( 標籤相關操作 )
- Merge Changes ( 合併修改 )
- Stash Changes ( 暫存修改 )
- UnStash Changes ( 取消暫存修改 )
- Reset HEAD
- Remotes
- Clone
- Fetch
- Pull
- Push ( 從本地暫存區提交到Remote )
Ctrl + Shift + K
- Rebase
- Rebase my GitHub fork
- Create Pull Request
- Commit File ( 進行提交修改 )
- Create Patch
- Apply Patch
- Apply Patch from Clipboard
- Shelve Changes
- Checkout from Version Control ( 從版本控制中檢出專案 )
- Github
- Git
- Mercurial
- Subversion
- TFS
- Import into Version Control ( 匯入專案到版本控制 )
- Import into CVS
- Create Git Repository ( 建立Git出庫 )
- Import into Subversion ( 匯入到SVN )
- Create Mercurial Repository
- Share Project On Github ( 分享專案到Github )
- Browse VCS Repository
- Browse VCS Repository
- Show Git Repository Log
- Browse Subversion Repository
- Sync Settings
- Local history