Idea中關於Git的使用
git是現代開發中離不開的一個話題,一個程式設計師不會使用git多多少少有點說不過去,對於一個被git為難過多次的程式設計師,這次必須要對這個東西進行一下反思和總結。網上的文章看了不少,要麼寫的太底層要麼說的太寬泛,對一個初學者而言難度偏大。所以這次打算從實操的角度來寫這篇文章。
首先我們先來看一下git的常用命令圖,
從上圖我們不難看出,git總共分成四個部分,其中本地佔三個,分別是工作區,暫存區和本底倉庫。很多新手對這幾個名詞可能不太理解,這裡進行一下解釋說明。工作區指的就是當前分支所對應的檔案目錄(包括路徑和資源),即程式碼所在本地電腦的位置,平常我們在開發工具上改程式碼就是在操作工作區的檔案.暫存區是介於本地倉庫和工作區之間的一個區域,其作用就是快取工作區修改的檔案。這裡需要注意的是如果快取區域的檔案沒有提交至本地庫,那麼其是無效的。由於git是版本控制工具,每一次提交都會生成一個版本而且這個版本號也僅僅只會在程式碼提交的時候才會生成,所以當暫存區的檔案沒有提交時,就相當於沒有生成新版本,造成的後果是即使你改了工作區的檔案但是該分支對應的程式碼依舊是未改之前的。打個比方說,此時你在A分支上,你修改了一些檔案但是並沒有commit,然後你切換到B分支,此時暫存區就會清空,當你在切回A分支時你就會發現你上次在A分支上修改的程式碼都不見了。所以當你修改程式碼以後一定不要忘記commit。本地倉庫和遠端倉庫除了所在的位置不一樣其他的都是一樣的,他們都包含著各個分支所對應的資源,分支的切換就是工作區的切換。
上圖所示的指令基本上就是我們在平常開發中所用到的全部指令了,很多人在明白了這些東西以後依舊在使用git的時候會出各種各樣的錯,比如push失敗啊,pull失敗啊,merge衝突啊或者merge以後不報錯但是程式碼不知道怎麼回事就執行不了了等等一些列的問題,輕則版本回退就能解決,重則原生代碼完全癱瘓根本run不起來,只能刪除重新下載,費時又費力,在專案比較趕的時候怕是想死的心都有啊哈哈哈,不知道大家有沒有這樣的經歷,反正我是經歷過好幾次。後來仔細想了一下,發現大部分問題還是由於git的使用不規範造成的。所以在這裡本人建議大家平常開發的時候一定要注意以下幾點:1)每次修改程式碼前一定要pull一遍保證此時本地的程式碼是最新版本;2)每寫一個新需求最好建立一個新分支,不要一直在一個分支上修改;3)每一次需求寫完程式碼提交完畢後最好刪除本地和遠端的分支。4)push的程式碼一定要是對的,不然容易被人打。5)不明白的指令一定不要瞎點。
接下來會對idea中的一些常用指令進行圖解說明,希望對大家有所幫助。
1.建立分支
命令列:git branch branch_name ex: git branch member-E 表示在本地建立了分支member-E
圖解:
2.切換分支
命令列:git checkout branch_name ex:git checkout member-E 表示切換至分支member-E
圖解:
3.檢視修改
命令列:git status
圖解:
4.提交修改
命令列:分三步
1)git add . 將工作區間修改的檔案提交至暫存區;
2)git commit -m "commit_message";
3) git push
圖解:
5.刪除本地分支
名令行:git branch -d branch_name
圖解:
6.刪除遠端分支
命令列:git push origin --delete branch_name
圖解
7.合併分支
命令列:git merge branch_name ex:git merge member-E 表示當前分支與分支member-E進行合併
圖解:
8.專案版本回退
命令列:git reset --hard head^ 回退至上一版本
命令列:git reset --hard head^^ 回退至前兩個版本,當回退的版本較多時可以寫成 git reset --hard head-10 10表示前十個版本
命令列:git reset --hard revision_number 表示直接回退至當前版本號對應的版本,版本號怎麼獲取自行百度
圖解:專案名右鍵
選中 Reset HEAD...進入如下檢視
9.檔案版本回退(撤銷修改)
命令列:git checkout -- Modefied_file 此時檔案寫的是路徑,想確定修改檔案的具體路徑可以使用git status檢視
圖解:在要回退的檔案上右鍵,
10.修改遠端倉庫地址
命令列:git remote set-url origin new_url
圖解:
x選中Remotes....進入如下檢視,選擇鉛筆進行路徑更改
11.merge衝突解決
命令列:
圖解:
當選擇Merge時,進入如下檢視
合併時遵循的原則是不同的都保留,相同的去重
git常用的指令基本就是這些啦,相比較於使用命令列使用視覺化工具相對來說更簡單一點,要想對這些指令的體會更加深刻,建議各位同學自己在gitHub上建立一個專案,然後反覆練習命令列或者操作視覺化工具我相信你一定會對每一個指令的具體作用有更深的認識。這篇分享就寫這麼多啦,本人也是初學者,如有錯誤歡迎批評指正。