Git使用分支管理策略及冲突处理

一、拉取仓库代码

1、拉取master分支

git clone <git地址>

2、拉取项目指定分支

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 *                         #添加有变动的文件
git add <fileName>      #添加指定文件

2、撤销添加文件

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

3、恢复文件

git checkout -- 文件名

4、提交文件

git commit -m "注释内容"

5、修改提交注释

git commit --amend

6、撤销提交文件

git reset --mixed HEAD^  #撤销提交[默认](撤销commit、撤销add、不删除改动)
git reset HEAD^
git reset --soft HEAD^   #撤销提交(撤销commit、不撤销add、不删除改动)
git reset --hard HEAD^   #撤销提交(撤销commit、撤销add、删除改动恢复到上次commit)

7、查看commit记录

git log

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

git reset --hard 7cf84b6

9、查看所有记录(包含reset操作)

git reflog

10、恢复版本到误回退版本

git reset --hard fd00496

11、推送远程服务器

git push origin master
git push

四、本地分支管理

1、创建分支

git branch dev

2、切换分支

git checkout dev

3、创建并切换分支

git checkout -b dev

4、查看分支

git branch

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

git branch --no-merged

6、合并分支

git merge dev

7、删除分支

git branch -d dev

五、远程分支管理

1、查看分支

git branch -r

2、拉取远程分支并切换至此分支

git checkout -b 本地分支名 origin/远程分支名

六、分支策略

1、主分支master

有且仅有一个master分支,该分支是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活


master

2、开发分支develop

日常开发用的分支,如果想正式对外发布,就在master分支上,对develop分支进行合并
每个开发人员都在develop分支上干活,每个开发人员都有自己的分支,时不时地往develop分支上合并就可以了


develop

3、功能分支feature

在开发中,会有无穷无尽的新的功能不断添加进,每添加一个新功能,最好新建一个feature分支,feature分支从develop分支上面分出来的,开发完成后,再并入develop分支,最后删除该feature分支


feature

4、BUG分支fixbug

每个bug都可以通过一个新的临时分支来修复,修复bug分支是从master分支上面分出来的,修复结束以后,再合并进master和develop分支,最后将临时分支删除


fixbug

5、预发布分支release

发布正式版本之前(即合并到master分支之前),我们可能需要有一个预发布的版本进行测试,预发布分支是从develop分支上面分出来的,预发布结束以后,必须合并进develop和master分支,最后删除release分支

七、冲突处理

1、合并冲突

git pull
git merge dev

2、查看分支合并图

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

八、本地存储

1、保存本地修改

git stash

2、查看保存标记

git stash list

3、还原本地修改

git stash pop
git stash pop stash@{0}

4、清空本地存储

git stash clear

九、设置Tag

1、列出已有tag

git tag

2、创建tag

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

3、同步远端服务器

git push origin v1.0

4、本地删除tag

git tag -d v1.0

5、远端删除tag

git push origin :refs/tags/v1.0

推荐阅读更多精彩内容