Git使用分支管理策略及沖突處理

一、拉取倉(cāng)庫(kù)代碼

1、拉取master分支

git clone <git地址>

2、拉取項(xiàng)目指定分支

git clone -b dev <git地址>

二、忽略配置特殊文件

.gitignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# Eclipse files
.classpath
.project
.settings
.metadata

# IntelliJ IDEA files
.iml
.ipr
.iws
.idea/

# Gradle files
.gradle/

# Mac OS files
.DS_Store

# Compiled files
build/
out/
bin/
target/

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

三、常用操作

1、添加文件

git add .                          #添加所有文件
git add *                         #添加有變動(dòng)的文件
git add <fileName>      #添加指定文件

2、撤銷(xiāo)添加文件

git reset HEAD .
git reset HEAD *
git reset HEAD 文件名

3、恢復(fù)文件

git checkout -- 文件名

4、提交文件

git commit -m "注釋內(nèi)容"

5、修改提交注釋

git commit --amend

6、撤銷(xiāo)提交文件

git reset --mixed HEAD^  #撤銷(xiāo)提交[默認(rèn)](撤銷(xiāo)commit、撤銷(xiāo)add、不刪除改動(dòng))
git reset HEAD^
git reset --soft HEAD^   #撤銷(xiāo)提交(撤銷(xiāo)commit、不撤銷(xiāo)add、不刪除改動(dòng))
git reset --hard HEAD^   #撤銷(xiāo)提交(撤銷(xiāo)commit、撤銷(xiāo)add、刪除改動(dòng)恢復(fù)到上次commit)

7、查看commit記錄

git log

8、版本回退到指定commit版本

git reset --hard 7cf84b6

9、查看所有記錄(包含reset操作)

git reflog

10、恢復(fù)版本到誤回退版本

git reset --hard fd00496

11、推送遠(yuǎn)程服務(wù)器

git push origin master
git push

四、本地分支管理

1、創(chuàng)建分支

git branch dev

2、切換分支

git checkout dev

3、創(chuàng)建并切換分支

git checkout -b dev

4、查看分支

git branch

5、查看所有未合并分支(在master下操作)

git branch --no-merged

6、合并分支

git merge dev

7、刪除分支

git branch -d dev

五、遠(yuǎn)程分支管理

1、查看分支

git branch -r

2、拉取遠(yuǎn)程分支并切換至此分支

git checkout -b 本地分支名 origin/遠(yuǎn)程分支名

六、分支策略

1、主分支master

有且僅有一個(gè)master分支,該分支是非常穩(wěn)定的,也就是僅用來(lái)發(fā)布新版本,平時(shí)不能在上面干活


master

2、開(kāi)發(fā)分支develop

日常開(kāi)發(fā)用的分支,如果想正式對(duì)外發(fā)布,就在master分支上,對(duì)develop分支進(jìn)行合并
每個(gè)開(kāi)發(fā)人員都在develop分支上干活,每個(gè)開(kāi)發(fā)人員都有自己的分支,時(shí)不時(shí)地往develop分支上合并就可以了


develop

3、功能分支feature

在開(kāi)發(fā)中,會(huì)有無(wú)窮無(wú)盡的新的功能不斷添加進(jìn),每添加一個(gè)新功能,最好新建一個(gè)feature分支,feature分支從develop分支上面分出來(lái)的,開(kāi)發(fā)完成后,再并入develop分支,最后刪除該feature分支


feature

4、BUG分支fixbug

每個(gè)bug都可以通過(guò)一個(gè)新的臨時(shí)分支來(lái)修復(fù),修復(fù)bug分支是從master分支上面分出來(lái)的,修復(fù)結(jié)束以后,再合并進(jìn)master和develop分支,最后將臨時(shí)分支刪除


fixbug

5、預(yù)發(fā)布分支release

發(fā)布正式版本之前(即合并到master分支之前),我們可能需要有一個(gè)預(yù)發(fā)布的版本進(jìn)行測(cè)試,預(yù)發(fā)布分支是從develop分支上面分出來(lái)的,預(yù)發(fā)布結(jié)束以后,必須合并進(jìn)develop和master分支,最后刪除release分支

七、沖突處理

1、合并沖突

git pull
git merge dev

2、查看分支合并圖

git log --graph
git log --graph --pretty=oneline --abbrev-commit

八、本地存儲(chǔ)

1、保存本地修改

git stash

2、查看保存標(biāo)記

git stash list

3、還原本地修改

git stash pop
git stash pop stash@{0}

4、清空本地存儲(chǔ)

git stash clear

九、設(shè)置Tag

1、列出已有tag

git tag

2、創(chuàng)建tag

git tag v1.0
git tag -a v1.0 -m "備注信息"
git tag -a v1.0 9fceb02 -m "備注信息"

3、同步遠(yuǎn)端服務(wù)器

git push origin v1.0

4、本地刪除tag

git tag -d v1.0

5、遠(yuǎn)端刪除tag

git push origin :refs/tags/v1.0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容