前言
最近開發環境變成了ubuntu + IntelliJ IDEA。之前都是在Windows上使用TortoiseGit(用法可參考Git客戶端(TortoiseGit)基本使用詳解),而在ubuntu上無法安裝TortoiseGit,並且Git命令行使用起來也不是很方便,所以最終決定使用IDEA自帶的Git工具。網上相關的文章很多,但不是很全,自己操作了一遍,記錄下使用方法。
一、在IDEA中配置Git
1、使用Git當然需要先安裝Git,安裝過程就不詳細說明了。安裝之后,點擊File -> settings,搜索Git,如下圖是我設置好的:
2、選擇好路徑之后,點擊右側的 Test 按鈕,彈出版本號則表示配置成功。如下:
二、克隆項目
1、打開IDEA,點擊Check out from Version Control -> Git,彈出框:
2、在URL中輸入 github 或者 gitlab 地址,在Directory中選擇本機存放的地址,點擊Clone,彈出登錄框:
3、輸入對應平台用戶名密碼,點擊 Log In,就可以將遠端代碼拉取到本地了
三、提交代碼(commit and push)
1、新建一個文件Test.txt,此時文件名是紅色的。右鍵Module名稱(也可以右鍵單個文件),選擇 Git -> Add:
此時文件名變成了綠色,表示該文件已加入Git管理:
2、選擇 Git -> Commit Directory,可以看到我們本次需要提交的文件:
3、點擊Commit,本次修改就提交到倉庫(可以看到文件名變成正常顏色了)
注意:提交時,一定要填寫Commit Message,記錄本次提交改動了什么(如果公司有提交日志規范的,需要按照規范來)
4、選擇Git -> Repository -> Push,將本地倉庫代碼推送的遠程倉庫:
四、創建/切換分支
1、選擇Git -> Repository -> Branches,彈出框:
2、可以看到當前只有一個分支,分支名是master。點擊New Branch,創建一個新分支:
3、點擊OK后,再次選擇Git -> Repository -> Branches,可以看到多了一個新分支my_branch,並且當前分支也是my_branch(當前分支前有一個圖標)
4、點擊 master 分支右邊的小三角,可以看到一些操作(具體如下圖所示)。點擊Checkout,可以切換到master分支
五、暫存(stash)、暫存還原(unstash)
使用場景:當想切換分支,但當前分支有些代碼又不想 commit。如果此時直接切換分支,會將當前分支上新增的代碼直接帶到其它分支,為了避免出現這種情況就可以使用 stash 功能。
stash 是將當前分支還不想提交的內容(該內容一定要受 git 管理,比如新增文件沒有執行add,則stash就不會生效)暫存起來,也就是還原成修改之前。此時切換到其它分支就不會將內容帶過去,同時切回來后,也可以在該分支將內容恢復。
1、修改Test.txt文件內容,同時新增文件Test2.txt:
2、選擇Git -> Repository ->Stash Changes,彈出框:
3、在 Message 中,輸入一個唯一標識,然后點擊Create Stash,會發現修改和新增的文件內容還原了:
4、此時可以切換到其它分支,然后切回來。選擇Git -> Repository ->UnStash Changes,彈出框:
5、點擊Pop Stash,會發現之前所有修改的內容全部還原了。
六、內容比較(Compare With)、回退(Revert)、查看歷史(Show History)
1、在Test.txt文件中,修改文件內容。右鍵文件,選擇Git -> Compare With,彈出:
2、點擊上面的一行,可以看到當前文件改動了什么,即當前文件與本地倉庫文件進行對比。如下:
如果是與其它分支進行對比,可以選擇Git -> Compare With Branch。
3、如果想回退到本地倉庫內容,可以選擇Git -> Revert,彈出框:
點擊Rever,文件就回退了(直接點擊彈出框中的文件,也可以看到對比信息)
4、如果想查看提交記錄,可以右鍵文件,然后選擇 Git -> Show History。彈出框:
5、右鍵某一條提交記錄,可以看到:
七、其它
1、文明顏色代表含義:
紅色:未被版本控制的文件
綠色:新加入版本的文件,即我們新創建的文件,還未提交到遠程倉庫
藍色:修改過的文件,即遠程倉庫中已有該文件,本次對它進行了修改,但是還未提交
2、Git -> Repository下,其它操作:
Fetch:從遠程拉取最新其它分支
Pull:從遠程拉取最新代碼(push前最好先執行pull)
Merge Changes:將遠端分支的代碼合並到當前分支