作者:Miss_Ye
來自:https://segmentfault.com/a/1190000014461898
一、 建立與合併分支
1、 從master分支建立dev分支並切換到dev分支:
git checkout master
git checkout -b dev
其中,git checkout -b dev 等價於:
git branch dev
git checkout dev
檢視本地當前的分支,分支前面帶“*”表示當前分支,剩下的分支表示本地有的分支:
git branch
檢視遠端全部的分支,白色的表示本地有的,紅色的表示本地沒有,僅在遠端存在:
git branch -a
2、修改程式碼、提交程式碼(當前的操作是在dev分支上進行)
git add a.html
git commit -m "提交檔案a.html"
3、分支合併(將dev合併到master)
git checkout master
git merge dev
4、合併完成後,刪除dev分支.(刪除dev分支時,註意我們當前所在的分支不能是dev分支)
git branch -d dev
5、刪除後,檢視分支(此時看不到dev分支了)
git branch
6、總結 :工作中經常從master建立新的分支,具體操作如下:
git checkout master
git checkout -b issues1234
git push origin issues1234
git add ..
git commit -m "***"
git push origin issues1234
註意:將本地分支branch1推到遠端的branch2操作步驟:
git push origin branch1:branch2
7、刪除分支
git branch -D issues1234 //本地強制刪除分支issues1234
git push origin :issues1234 //推到遠端
二、 解決衝突
1、發生衝突的檔案
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1
其中,git使用 <<<<<<<
, =======
, >>>>>>>
標記檔案中自己和別人產生衝突的部分。
在 <<<<<<<
, =======
之間為自己的程式碼;
=======
, >>>>>>>
之間為別人的程式碼。
如果保留自己的程式碼,將別人的程式碼刪掉即可。
2、衝突解決後提交
git status
git add ***
git commit -m "fix conflict"
git push origin 分支名
三、Bug分支
1、儲藏更改:將當前更改的程式碼儲藏起來,等以後恢復使用
git stash
2、恢復儲藏的程式碼
git stash pop //恢復的同時把stash內容刪掉
或者
git stash apply //恢復stash,但是stash內容並不刪除
git stash drop //在上面操作的基礎上,以此來刪除stash
註: git stash list //檢視全部的stash串列。
3、將stash空間清空
git stash clear
4、git stash pop 和 git stash apply 區別
原來git stash pop stash@{id}命令會在執行後將對應的stash id 從stash list裡刪除,而 git stash apply stash@{id} 命令則會繼續儲存stash id。
四、版本回退
1、回退至上一個版本
git reset --hard HEAD
2、回退至指定版本
git reset --hard 版本號
3、檢視以往版本號(本地的commit)
git reflog
4、檢視各版本號及資訊(所有的commit:本地commit + 其他同事的commit)
git log
五、撤銷修改
1、撤銷修改
git checkout -- a.html
分兩種情況分析:
-
還沒有執行 git add 操作,執行上面的操作後,會恢復到和版本庫中一模一樣的版本狀態。
-
執行了git add ,還沒執行 git commit ,再執行上面的操作後,會恢復到git add 結束後的狀態
註:一旦執行了git commit -m "*",就不能再使用上面的命令回退。
六、對於已經push的版本,進行回退
1、第一步:
git reset --hard 版本號 //本地回退到指定的版本
2、第二步:
git push -f origin dev //將遠端的也回退到指定版本
七、本地同步遠端刪除的分支
git fetch origin -p //用來清除已經沒有遠端資訊的分支,這樣git branch -a 就不會拉取遠端已經刪除的分支了
八、刪除掉沒有與遠端分支對應的本地分支
從gitlab上看不到的分支在本地可以透過git branch -a 查到,刪掉沒有與遠端分支對應的本地分支:
git fetch -p
九、檢視遠端庫的一些資訊,及與本地分支的資訊
git remote show origin
十、git stash臨時儲存本地操作
1、使用 git stash
就可以將你當前未提交到本地(和伺服器)的程式碼推入到Git的棧中,這時候你的工作區間和上一次提交的內容是完全一樣的。
2、再切換到別的分支改緊急bug。
3、改完後,切到剛才的分支,使用 git stash apply
將以前一半的工作應用回來。
也許有的人會說,那我可不可以多次將未提交的程式碼壓入到棧中?答案是可以的。當你多次使用 git stash
命令後,你的棧裡將充滿了未提交的程式碼,這時候你會對將哪個版本應用回來有些困惑, git stash list
命令可以將當前的Git棧資訊打印出來,你只需要將找到對應的版本號,例如使用 git stash apply stash@{1}
就可以將你指定版本號為stash@{1}的工作取出來,當你將所有的棧都應用回來的時候,可以使用 git stash clear
來將棧清空。
在這裡順便提下 git format-patch-n
, n是具體某個數字, 例如 git format-patch-1
這時便會根據log生成一個對應的補丁,如果 git format-patch-2
那麼便會生成2個補丁,當然前提是你的log上有至少有兩個記錄。
●編號485,輸入編號直達本文
●輸入m獲取文章目錄
Python程式設計
更多推薦《18個技術類微信公眾號》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。