摘要:所有提供给用户使用的正式版本,都在这个主分支上发布。如果想正式对外发布,就在分支上,对分支进行合并。为了保证版本演进的清晰,我们希望采用这种做法。开发完成后,要再并入。修补结束以后,再合并进和分支。
## 基础分支
master 主分支
develop 开发分支
feature 功能分支
release 预发布分支
fixbug 修补分支
说明:临时分支命名形式feature-x,release-0.0,fixbug-x
0.检出仓库
git clone /path/to/repository #如果是远程服务器上的代码库,则: git clone username@host:/path/to/repository
1.添加与提交
#添加到缓冲区 git add * #提交代码更改 git commit -m"代码提交信息" #推送到服务器 git push origin master
2.分支
#创建分支 git checkout -b feature_x #切换回主分支 git checkout master #删除新建的分支 git branch -d feature_x #分支推送到服务器 git push origin
3.更新与合并
#更新至最新版本 git pull #合并其他分支到你的当前分支 git merge#如果出现冲突,需要正确合并这些冲突,完毕后 git add #查看差异 git diff
4.标签
git tag 1.0.0 1b3e2d3gdjd #查看提交ID git log
5.替换本地改动
git checkout --主分支Master#假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它 git fetch origin git reset --hard origin/master
代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。开发分支Develop
主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。这个分支可以用来生成代码的最新隔夜版本(nightly)。如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)。 # Git创建Develop分支的命令:
git checkout -b develop master
# 将Develop分支发布到Master分支的命令:
# 切换到Master分支
git checkout master
# 对Develop分支进行合并
git merge --no-ff develop
#这里稍微解释一下,上一条命令的--no-ff参数是什么意思。默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。 #使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。关于合并的更多解释,请参考Benjamin Sandofsky的《Understanding the Git Workflow》。功能分支
它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。 #功能分支的名字,可以采用feature-*的形式命名。 #创建一个功能分支:
git checkout -b feature-x develop
#开发完成后,将功能分支合并到develop分支:
git checkout develop
git merge --no-ff feature-x
#删除feature分支:
git branch -d feature-x
预发布分支它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。 #创建一个预发布分支 git checkout -b release-1.2 develop #确认没有问题后,合并到master分支 git checkout master
git merge --no-ff release-1.2
# 对合并生成的新节点,做一个标签
git tag -a 1.2
#再合并到develop分支 git checkout develop
git merge --no-ff release-1.2
#最后,删除预发布分支 git branch -d release-1.2修补Bug分支
软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式。 #创建一个修补bug分支: git checkout -b fixbug-0.1 master 修补结束后,合并到master分支:
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
#再合并到develop分支:
git checkout develop
git merge --no-ff fixbug-0.1
#最后,删除"修补bug分支":
git branch -d fixbug-0.1
建议新手阅读这篇文章http://rogerdudler.github.com/git-guide/index.zh.html分子合并模式 添加一个远程版本库
git remote add smartdevelop https://github.com/smartdevel...
获取远程版本库gotgithub的分支和提交git fetch smartdevelop
将远程分支合并到当前分支中git merge smartdevelop/master
git merge smartdevelop/develop 提交到本地仓库git add *
git commit -m""
git push
本地拉取仓库git pull
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/83880.html
摘要:容易理解创建一个构造函数并使用该函数和操作符初始化对象。被继承的对象被称作原型,并且继承的属性可能通过构造函数的对象找到。 This is my first blood! 第一次在segmentfault上写(chao)文章。 内容提要:认(wu)真(liao)的整理一下javascript对象的知识,人家还是菜鸟,必须要搞懂啊。 PS:1.真的菜,所以看到文章的同学,推荐采用随缘阅读...
摘要:官方默认项目是存放了一个为的打开文件夹有一个,还有一个名为组件的文件夹,里面放了一个文件。部分我们会发现这几排字就是显示在页面的几排文字部分这其中的这个文件引入了,还有上述的。结合查询其他说法,就是说它会把是的元素以形式替换。 前言 我很早就想来学习学习vue.js啦,终于有了那么一些空闲的时间可以拿来学习,于是从前天开始我就每天抽一个多小时来体验vue.js。当然啦,因为是小白入门,...
摘要:为什么会产生闭包究其根本,是因为代表的函数包含的作用域。而在作用域链中,外部函数的活动对象始终处于第二位,外部函数的外部函数的活动对象处于第三位直到作为作用域链终点的全局执行环境。 前言 此文的内容主要是来自看书的总结+小小的实践哦~会不断更新总结。 什么是闭包 书上是这样定义闭包的: 有权访问另一个函数作用域中变量的函数。 举一个例子: function test(){ va...
摘要:本文将继续介绍简单的增删改查方法和对对象实例状态的理解查询方法暂不提及。二实例状态中的对象有中状态瞬时对象持久化对象和离线对象也叫做脱管对象。持久化状态已经被持久化,并且加入到缓存中。处于游离状态的对象称为游离对象。 在上一篇《初识Hibernate》中简单介绍了在Hibernate如何加载对象和持久化对象,以及Hibernate中对象实例状态。本文将继续介绍Hibernate简单的增...
摘要:之银弹技法下文这些淫巧在之前自认为是居家必备,装逼撩妹的必备之物,博主一直敝帚自珍,不愿拿出来分享,现如今,极尽能事,我知道再不拿出来就在没有价值了来由博主入行前端写时候,因为需要兼容低版本,时常需要在繁杂冗长的操作夹杂的代码中,尽可能巧妙 JavaScript 之银弹の技法 下文这些淫巧在之前自认为是居家必备,装逼撩妹的必备之物,博主一直敝帚自珍,不愿拿出来分享,现如今,ES6+极尽...
阅读 289·2024-11-07 18:25
阅读 130366·2024-02-01 10:43
阅读 868·2024-01-31 14:58
阅读 828·2024-01-31 14:54
阅读 82766·2024-01-29 17:11
阅读 3048·2024-01-25 14:55
阅读 1985·2023-06-02 13:36
阅读 3033·2023-05-23 10:26