從svn轉過來的朋友,會發現使用git沒有svn那樣順手,但還是得用。
說明:
在idea中使用git不需要我們本地安裝git,也無需手動安裝git插件。
1.從git下載項目
想在idea中下載git項目,如果此時我們已經打開了其它項目,需要先關閉本項目,idea不像eclipse,不能在同一個窗口中管理多個項目。
關閉后,會自動來到歡迎界面
輸入git項目的訪問地址,以“.git”結尾;
指定項目存放路徑,如果沒有自動生成對應的項目目錄,需要自己手動加上。
輸入用戶名和密碼
3.更新項目代碼
項目的更新,共分兩種情況。
第一種情況:本地代碼沒做任何修改
此時,我們直接更新代碼就完了,找到工具欄的這個圖標,點擊更新。
如果工具欄沒有的話,選中項目,右鍵:
把一個分支中的修改整合到另一個分支的辦法有兩種:merge(合並)
和 rebase(衍合);
合並比較容易理解:
同級分支+父節點,三方合並產生C5。
衍合:分支上的變化會打成補丁,在同級主支上重演一遍,生成新的主節點。
更為詳細、復雜的區別,見文末推薦。
用哪種方式都行。
第二種情況:本地代碼已經修改。
在實際開發過程中,一種情況會經常出現,那就是:兩人或多人同時修改同一個文件。
后提交代碼的人將會提交失敗,也就是:代碼沖突。
此時,我們不能立刻更新代碼,一旦更新將會導致本地修改的代碼被覆蓋掉。
正確做法應該是:
將代碼先提交到本地倉庫。
commit
然后再更新代碼;
最后,將更新后的代碼與本地倉庫代碼進行比較。
有一種更為簡單的方式,就是:
如果改動比較小的話,將自己的代碼拷貝出來,直接更新,然后,把自己添加的代碼再加進去就完事了。
4.提交項目代碼
提交代碼,也分兩種情況。
第一種情況:本地是最新代碼;
也就是說:你本地代碼就是遠程倉庫上最新代碼,沒有其它人在你之前提交代碼
或者,雖然別人先於你提交,但是,代碼上互不影響,沒有出現交叉的情況。
勾選需要提交的代碼並添加注釋;
這里需要注意的是:
與svn不同,git的commit只是將代碼提交到了本地倉庫,並沒有推送到遠程倉庫(別人是無法看到你的代碼的)。
點擊上圖中的“倒三角”,選擇:Commit and Push;
只要沒有錯誤,就能提交,點擊"Commit and Push";
這樣,在代碼提交到本地倉庫后,就會彈出推送頁面;
Push即可。
第二種情況:代碼沖突。
當我們push失敗的時候,一般就是由於代碼沖突造成的。
此時,我們已經將代碼提交到了本地倉庫,與遠程倉庫進行對比,修改好重新CommitAndPush。
5.新建分支
當項目變動比較大的時候,我們往往會選擇新建分支,將修改好的代碼提交到新分支上。
切換到Git視圖
一般會在idea底部
如上圖所示,Git倉庫分為兩種:
Local:代表本地倉庫;
Remote:代表遠程倉庫。
選中本地當前分支,點擊左側的+號。
注意:只有選中分支,左邊的+號才能點擊。
給分支起個名字
這樣,本地就從mvc-model切換到了test分支上。
點擊工具欄的提交按鈕,提交並推送,完成后,遠程倉庫就增加了test分支,並且這次提交的代碼也會被放到test中。
如果沒有git視圖的話,選中項目,遵照此路徑打開
6.刪除分支
無論是本地倉庫還是遠程倉庫,只要是分支都可以進行刪除操作。
先說本地倉庫
只要不是正在使用的分支都可以刪除
如果需要同步到遠程倉庫上,commit and push即可。
再說遠程倉庫
只要不是主分支,其它分支都能刪除
這里再講一下衍合分支
由於上面在演示的時候,我誤把新修改的代碼提交到了test分支上;
mvc-models分支上就不是最新代碼了
如何把test分支上的代碼遷移到mvc-models分支上?
選中test分支,右鍵選擇rebase
這樣,mvc-models就重演了一遍test上的內容。
相當於將test上的代碼更新到了mvc-models上。
此時,我們將test分支刪除,mvc-models記錄也會發生變化:
本地倉庫test分支已經消失;
最新代碼歸屬也回到了mvc-models上。
但需要注意的是:
遠程倉庫上test分支並沒有消失。
遠程倉庫上的mvc-models還是原來的,並沒有和test攪合在一起。
test分支卻默默發生了些許變化:
最后提交的代碼歸屬到了mvc-models分支上。
如何將變化同步更新到遠程倉庫上?
此時,如果我們點擊commit的話,由於當前代碼與本地倉庫代碼並沒有發生任何改變,所以我們根本無法commit。
我們再仔細回憶一下命令:
commit在git里是想本地代碼提交到本地倉庫;
push在git里才是將本地倉庫發生的變化同步到遠程倉庫。我們此時也是直接操作的是本地倉庫,和代碼沒有任何關系。
所以,我們只需要使用push命令即可。
選中項目,右鍵
Push
推送成功
這時,test分支上的代碼就更新到了mvc-models分支上啦
如果需要刪除test分支的話,下面兩種方式均可。
7.切換分支
不管是本地還是遠程,選中要切換的分支,右鍵"Check Out",就會把選中的分支下載下來作為開發節點。
8.查看git地址
查看當前項目的git地址
選中,點擊修改,就可以復制Git地址啦。
9.回滾/還原
當我們修改代碼后,又不想提交,且需要還原的時候,就需要git的回滾操作啦。
選中要還原的文件
如果“Rollback”是灰色的(不能點擊),說明此文件和git上代碼是一致的。
10.分支重命名
注意:
在idea中,無法切換主分支,以及對分支進行重命名。
錯誤示例:
以對分支進行重命名為例
需要在本地進行修改,然后再推送到遠程倉庫上。
重命名成功,選中該分支,右鍵,push
但遠程倉庫上並沒有重命名成功
提交代碼的時候還是提交到mvc-models上
別急,雖然重命名的方式行不通,但是,我們可以點擊上圖中的mvc-models分支,將名字改成:mvc-modules,就成了新建分支
推送成功
將原來的分支刪除即可。
如果此時,當git上,mvc-models為主分支的話,就會刪除失敗。
需要在git上將主分支切換成其它分支,再次刪除就可以了。
20210312