git管理代码命令之我的个人习惯

198 阅读3分钟

0.分支涉及

主分支: master
开发分支:develop
临时分支三种:
	功能(feature)分支
	预发布(release)分支
	修补bug(fixbug)分支

1.第一次下载代码master,这时会在本地建一个叫master的分支

git clone https://gitee.com/jxlhljh/gittest.git

注:所有提供给用户使用的正式版本,都在这个master主分支上发布,一般不在master分支上开发

2.接着在开发分支develop上进行开发

git checkout -b develop master

注:master主分支只用来分布重大版本,日常开发应该在另一条开发分支develop上完成。

3.开发时,一般是直接在develop分支上开发,如果为了开发某种特定功能,可以考虑采用临时性的功能分支开发。

功能分支的名字,可以采用feature-*的形式命名,创建一个功能分支如:
git checkout -b feature-x develop

开发完成后,将功能分支合并到develop分支
git checkout -b feature-x develop
git merge --no-ff feature-x

最后删除feature分支
git branch -d feature-x

4.开发完后要发布版本时,理想情况下,从开发分支分2步合并到master(但较少直接从develop直接到master,一般会走realease预发布)

切换到master分支
git checkout master

 对develop分支进行合并,将develop分支的代码合并到master
git merge --no-ff develop

5.常用的做法是采用release预发布分支作中转,如生成预发布分支。

比如准备发版1.0,将develop版本切成一个release-1.0的分支出来。
git checkout -b release-1.0 develop

经过功能测试确认,如果没有问题后,合并到master分支
git checkout master
git merge --no-ff release-1.0

对合并生成的新节点,做一个标签
git tag -a 1.2

再合并到develop分支
git checkout develop
git merge --no-ff release-1.0

最后,删除预发布分支
git branch -d release-1.0

6.修补bug

从master分支切出来一个bug分支进行bug修复,修复完把bug分支删除

修补bug分支是从master分支上面分出来的。修补结束以后,再合并进master和develop分支。它的命名,可以采用fixbug-*的形式

创建一个修补bug分支
git checkout -b fixbug-1.01 master

修补结束后,合并到master分支
git checkout master
git merge --no-ff fixbug-1.01
git tag -a 1.01


再合并到develop分支
git checkout develop
git merge --no-ff fixbug-1.01

最后,删除"修补bug分支":
git branch -d fixbug-1.01

注:本文内容部分参考此文www.ruanyifeng.com/blog/2012/0…


以下内容供参考,也是我会常用的一种使用方式,我在小项目中也会这样用

1.第一次下载代码master,这时会在本地建一个叫master的分支

git clone https://gitee.com/jxlhljh/gittest.git

2.如果git源地址上新建了新的分支,执行下面的fetch拉取最新的分支信息

git fetch
git branch -a

3.切换到分支开发:checkout远程的1.0.0分支,在本地起名为1.0.0分支,并切换到本地的1.0.0分支

git checkout -b 1.0.1 origin/1.0.1
git branch可看到已经切换到1.0.0

$ git branch
* 1.0.0
  master

5.现在在1.0.0上修改bug等,提交

git add .
git commit -m "message content"
git push origin 1.0.0

6.合并到master

先切换到master

git checkout master

然后将1.0.0分支修改的代码合并到master

git merge 1.0.0 --no-edit

有冲突的话解决冲突,然后执行

git add .
git commit -m"message"

提交到远程

git push master

7.其他

将本地多余的远程分支删除

git remote show origin
git remote prune origin

如何同步本地tag与远程tag

git tag -l | xargs git tag -d  #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息
git ls-remote --tags origin #查询远程tags的命令如下

切换到标签1.0.0

git checkout 1.0.0

查看远程tag

git tag --list

8.分支管理作相关命令

查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name]
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]