Git 操做規範

Git 操做規範

做者:Miss_Ye
來自:http://www.javashuo.com/article/p-ogqpmmyg-ea.htmlhtml

1、 建立與合併分支

一、 從master分支建立dev分支並切換到dev分支:git

git checkout master
git checkout -b dev

其中,git checkout -b dev 等價於:segmentfault

git branch dev
git checkout dev

查看本地當前的分支,分支前面帶「*」表示當前分支,剩下的分支表示本地有的分支:bash

git branch

查看遠程所有的分支,白色的表示本地有的,紅色的表示本地沒有,僅在遠程存在:服務器

git  branch -a

二、修改代碼、提交代碼(當前的操做是在dev分支上進行)app

git add a.html
git commit -m "提交文件a.html"

三、分支合併(將dev合併到master)gitlab

git checkout master
git merge dev

四、合併完成後,刪除dev分支.(刪除dev分支時,注意咱們當前所在的分支不能是dev分支)fetch

git branch -d dev

五、刪除後,查看分支(此時看不到dev分支了)ui

git branch

六、總結 :工做中常常從master建立新的分支,具體操做以下:code

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

七、刪除分支

git branch -D   issues1234  //本地強制刪除分支issues1234
git push origin  :issues1234  //推到遠程

2、 解決衝突

一、發生衝突的文件

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

其中,git使用<<<<<<<,=======,>>>>>>>標記文件中本身和別人產生衝突的部分。

在<<<<<<<,=======之間爲本身的代碼;

=======,>>>>>>>之間爲別人的代碼。

若是保留本身的代碼,將別人的代碼刪掉便可。

二、衝突解決後提交

git status
git add ***
git commit -m "fix conflict"
git push origin 分支名

3、Bug分支

一、儲藏更改:將當前更改的代碼儲藏起來,等之後恢復使用

git stash

二、恢復儲藏的代碼

git stash pop //恢復的同時把stash內容刪掉

或者

git stash apply //恢復stash,可是stash內容並不刪除
git stash drop //在上面操做的基礎上,以此來刪除stash

注: git stash list //查看所有的stash列表。

三、將stash空間清空

git stash clear

四、git stash pop 和 git stash apply 區別

原來git stash pop stash@{id}命令會在執行後將對應的stash id 從stash list裏刪除,而 git stash apply stash@{id} 命令則會繼續保存stash id。

4、版本回退

一、回退至上一個版本

git reset --hard HEAD

二、回退至指定版本

git reset --hard 版本號

三、查看以往版本號(本地的commit)

git reflog

四、查看各版本號及信息(全部的commit:本地commit + 其餘同事的commit)

git log

5、撤銷修改

一、撤銷修改

git  checkout -- a.html

分兩種狀況分析:

  1. 尚未執行 git add 操做,執行上面的操做後,會恢復到和版本庫中如出一轍的版本狀態。

  2. 執行了git add ,還沒執行 git commit ,再執行上面的操做後,會恢復到git add 結束後的狀態

注:一旦執行了git commit -m "*",就不能再使用上面的命令回退。


6、對於已經push的版本,進行回退

一、第一步:

git reset --hard 版本號 //本地回退到指定的版本

二、第二步:

git push -f origin dev //將遠程的也回退到指定版本

7、本地同步遠程刪除的分支

git fetch origin -p //用來清除已經沒有遠程信息的分支,這樣git branch -a 就不會拉取遠程已經刪除的分支了

8、刪除掉沒有與遠程分支對應的本地分支

從gitlab上看不到的分支在本地能夠經過git branch -a 查到,刪掉沒有與遠程分支對應的本地分支:

git fetch -p

9、查看遠程庫的一些信息,及與本地分支的信息

git remote show origin

10、git stash臨時保存本地操做

一、使用 git stash 就能夠將你當前未提交到本地(和服務器)的代碼推入到Git的棧中,這時候你的工做區間和上一次提交的內容是徹底同樣的。

二、再切換到別的分支改緊急bug。

三、改完後,切到剛纔的分支,使用 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上有至少有兩個記錄。

相關文章
相關標籤/搜索