PhpStorm Git 操作


本教程適用於以下產品:

一、前提

1、下載並安裝好 PhpStorm

2、下載並安裝好 Git

3、熟悉 Git 相關命令行操作

 

二、Git pull & commit(add)

下面簡單說一下相關操作:

PhpStorm 打開一個 Git 的項目

右上角就會有類似的兩個按鈕

新版的界面是這個

 

 

左邊這個就是拉代碼的,命令行是:Git pull

右邊這個是Commit的,命令行是:add 和 Commit

提交代碼快捷鍵:Ctrl + Shift + K ,命令行是:Git Push

 

 

與 SVN 不同的是,Git commit 后還需要 push 代碼才會真正被提交到 Git 倉庫

 

三、切換版本分支以及代碼合並

切換版本分支命令行:Git checkout

選擇你要切換的分支,直接 Checkout 即可,若是本地沒有的分支,在遠程分支列表中選擇 Checkout As ,輸入名稱即可,如下圖:

    

分支合並命令行:Git merge

比如我想把本地的分支 A 合並到分支 B 里面,首先先確保你本地的 B分支 的代碼是“最新的

即:切換到 B分支,更新代碼,選中 A分支,鼠標左擊,選中 Merge into Current  ( PS:舊版本可能是 Merge )

(這里也可以進行遠程分支合並,即在 Remote Branches 里面,選擇想要合並的分支,選擇 Merge into Current 進行合並)

點中這個進行合並,合並后 Push 到 Git 倉庫即可

 

四、回滾

下面關於 Commit 之后反悔的操作,我 Commit 了一些修改,但是我突然不想要了,右下角切換到 Log,看你的 Commit,不想要的直接右鍵選擇 Revert,可以直接撤銷剛剛的 Commit(這個只能撤銷自己的 Commit)

Revert Current Branch to Here 可以直接撤銷前面的所有 Commit,包括別人已經 Push 的修改也可以撤銷,撤銷之后,代碼會回到 Commit 之前的狀態,即文件是藍色綠色紅色那種

 選擇 Reset Current Branch to Here ,還可將代碼回滾到指定的地方,點了之后有四個選項可以選,根據實際情況選一個就行,默認就選 Mixed 如圖:

 

然后 Force Push 就可以實現代碼的回滾,注意一定要強制Push,不然代碼是推不上去的,如圖:

 

 注意:master分支在 PhpStorm 里面好像不能強制push(默認是保護的分支),可以直接用命令行

$ git push -u origin master -f

 或者修改配置(直接刪掉就行):

 

注意:上面兩種方式都會影響當前分支,即會丟失代碼提交記錄等,若不想用 revert 或者 reset 的話,參考下面目錄第“十一”,Check Revision 創建新的分支

 

五、新建分支

Git 新建分支,右下角直接切換到你想要復制的分支上,保證代碼是最新的情況下,點擊 New Branches,輸入名字即可

比如:我想要復制 A 分支,並命名為 B 分支,首先我先切換到 A 分支上,然后 New Branch 創建一個新分支,並命名為 B,接着把 B Push 即可

 

六、Stash / Unstash

Stash:把當前項目所修改的地方暫存到本地

Unstash:恢復上次暫存的文件

比如現在我有個 Bug,想切換到其他分支修改這個 Bug,但是呢,我當前開發的分支已經修改了一些東西,而我又不想提交,

這個時候可以用 stash 暫存一下你的代碼,然后切換到其他分支修改完 Bug 后再切回開發的分支,執行 unstash 就可以恢復到當時修改的文件

流程如下圖:

1、暫存

2、恢復,選中當時暫存的版本,點擊 apply 恢復即可

 

七、Cherry-Pick

假設我在 A 分支有一個提交記錄,由於改動的地方比較多,我想單獨把這條已經在 A 分支 push 過的提交記錄在 B 分支也加上去(我不想直接合並兩個分支)

這種情況的話,直接使用 Cherry-Pick ,對應命令

git cherry-pick <commit id>

下面說下操作:

先切換到 B 分支,打開 Git 提交記錄,在Branch 選擇 A 分支,然后找到你提交的那條記錄(如上圖),右鍵,選擇 Cherry-Pick(如下圖),然后 commit 跟 push,完畢,這樣就把 A 分支的某條提交記錄單獨的“合並”到 B 分支。

 

八、Annotate

下面說一下黑科技,Annotate,甩鍋神器

打開文件,在左邊顯示行數的地方右鍵,選擇Annotate

選擇之后左邊行號那里會多出一些神秘的東西,選擇其中的一個即可查看你當前文件對應的某一行代碼上一次的修改情況,甩鍋跟排查 BUG 必備

如果你某一天,線上的某個功能有人偷偷改了,未經過測試就出現問題,用這個可以快速看出是誰捅的簍子,盡快修復安排上線。

 

九、Tag

創建 tag:

打開 Version Control -> log,選擇某條提交記錄,右鍵,選擇 New Tag,可以對某一條提交記錄打上 Tag 標簽,如下圖

或者

PS:創建完標簽后記得把 tag 推送到 Git 服務器!

如何推送呢?如下圖:

選擇 All:即推送所有 tag

選擇 Current Branch:推送當前分支的 tag

命令行是:

$ git push origin [tagname]  #推送單個tag
$ git push [origin] --tags   #推送所有tag

打上標簽可以在部署代碼的時候,選擇部署到標簽指向位置的代碼,標簽后面的所有提交記錄都不會部署,以 Jenkins 為例

這樣的話,部署代碼到服務器只會部署標簽所在位置之前的代碼,標簽后面的提交記錄不會被部署,打上標簽可以快速回滾系統版本

刪除 tag:

找到你創建的 tag,右鍵刪除

注意右下角,Restore是還原,Delete on Remote是把 Git 服務器上的標簽刪除

命令行:

$ git tag -d tagname              //本地刪除tag
$ git push origin :refs/tags/tagname    //本地tag刪除了,再執行該句,刪除線上tag

 

十、查看文件修改歷史

打開你想要查看的文件,在頂部文件的 tab 處右鍵;也可以直接在左側的文件列表右鍵,效果一樣, Git -> Show History 如下圖:

點擊 Show History 后會打開一個新的面板,里面會展示當前文件所有的提交歷史,雙擊某條提交歷史可以查看這條提交記錄所修改的地方

 

十一、Checkout Revision

版本回退或者想從某個提交記錄開始創建新的分支,打開 Git Log 窗口,選擇某條提交記錄,假設為 001,右鍵,選擇 Checkout Revision ,這個時候會創建一個新的臨時分支,這個分支會保留提交記錄 001(包括001)之前的所有提交記錄,即保留提交記錄 001 之前的所有代碼,注意,這個時候這個分支是臨時的分支,任何 git pull 和 git push 都不會生效,點擊右下角的 git,選擇 New branch,輸入名稱后創建一個新的分支,這個新創建的分支保留有 001 之前的所有代碼,然后我們再把這個分支的代碼推送到服務器,這個時候新的分支就創建好了,這個分支保留有 001 之前的所有代碼,這樣創建新的分支的方式即不用回滾丟棄不要的提交,也不會對其他版本造成任何影響,又避免誤使用 reset 或者 revert 對代碼造成不可恢復的影響,這樣做無非就多了一個新的分支而已,如下圖:

選擇后創建的臨時分支

以當前的代碼創建新的分支,然后推送到遠程服務器即可

 

十二、刪除版本

 刪除本地分支或者刪除遠程分支,右下角選擇 git,選擇想要刪除的分支,鼠標左擊,選擇 Delete


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM