虚拟项目学习git/github原理与基本操作8
2013-01-04 14:51
274 查看
假设目前我们的项目状态是这样的,如下图所示,分支的情况,当前已经把其他的分支都合并到了master分支。
接下来的操作都以上面图中最新的master分支为基础进行,前面的都不去讨论。
现在我们将master分支向前推进两步,分别添加写别的功能,在function2中。
如果不推送到远端的话,远端仓库的HEAD指针会比当前工程的指针落后一步。
所以把工程推送到远端。
然后再看当前的分支图
这个时候为了让分支图看得更加清晰,我们再次让当前项目推进一步,修改一点东西。
比如说我们这次添加新的特征feature x11
这个时候的分支图看起来是这样的:
可以看到远端仓库的master分支落后了,我们再次推送到远端仓库一下。
然后分支图看起来就是这样的了:
我们从现在的基础上,拉出一个新的分支称为:featurex1,在这个新的分支上为整个项目添加新的特征,并在这个分支上进行相关测试,所以不论这个分支是否成功,都不会对原来的master分支的程序造成恶化,就算失败了,直接不要这个分支就可以了,如果这个分支测试成功,那么把这个特征分支合并到master分支就很方便了。
watkins@watkins:~/watkins/finance$ git branch featurex1
watkins@watkins:~/watkins/finance$ git branch -v
featurex1 fd91f3b add feature x11
iss53 5fda582 iss53-2
* master fd91f3b add feature x11
watkins@watkins:~/watkins/finance$ git checkout featurex1
Switched to branch 'featurex1'
watkins@watkins:~/watkins/finance$
然后把切换到新的分支中,推进两步,分别修改不同的地方,假设分别修改issuex1_1,issuex1_2
目前推进之前的分支图如图所示:
然后将分支向前推进两步。
然后,我们发现我们现在的featurex1分支已经开发的非常好了,而且经过完善的测试,所以现在我们想把在feature1中添加的功能合并到master分支中。
就可以切换到master分支中,然后合并feature1分支。
watkins@watkins:~/watkins/finance$ git merge featurex1
Updating fd91f3b..07c0bb7
Fast-forward
funciton3 | 2 ++
1 file changed, 2 insertions(+)
watkins@watkins:~/watkins/finance$
出现了Fast-forward,是因为合并之前master分支的快照指针是featurex1的快照指针的父节点,所以可以直接将master指针向后移动,不许要处理其他的冲突操作等,因为不存在。
当前分支图为:
合并时出现了 “Fast forward”(快进)提示。由于当前 master 分支所在的 commit 是要并入的 hotfix 分支的直接上游,Git 只需把指针直接右移。换句话说,如果顺着一个分支走下去可以到达另一个分支,那么 Git 在合并两者时,只会简单地把指针前移,因为没有什么分歧需要解决,所以这个过程叫做快进(Fast
forward)。
接下来的操作都以上面图中最新的master分支为基础进行,前面的都不去讨论。
现在我们将master分支向前推进两步,分别添加写别的功能,在function2中。
如果不推送到远端的话,远端仓库的HEAD指针会比当前工程的指针落后一步。
所以把工程推送到远端。
然后再看当前的分支图
这个时候为了让分支图看得更加清晰,我们再次让当前项目推进一步,修改一点东西。
比如说我们这次添加新的特征feature x11
这个时候的分支图看起来是这样的:
可以看到远端仓库的master分支落后了,我们再次推送到远端仓库一下。
然后分支图看起来就是这样的了:
我们从现在的基础上,拉出一个新的分支称为:featurex1,在这个新的分支上为整个项目添加新的特征,并在这个分支上进行相关测试,所以不论这个分支是否成功,都不会对原来的master分支的程序造成恶化,就算失败了,直接不要这个分支就可以了,如果这个分支测试成功,那么把这个特征分支合并到master分支就很方便了。
watkins@watkins:~/watkins/finance$ git branch featurex1
watkins@watkins:~/watkins/finance$ git branch -v
featurex1 fd91f3b add feature x11
iss53 5fda582 iss53-2
* master fd91f3b add feature x11
watkins@watkins:~/watkins/finance$ git checkout featurex1
Switched to branch 'featurex1'
watkins@watkins:~/watkins/finance$
然后把切换到新的分支中,推进两步,分别修改不同的地方,假设分别修改issuex1_1,issuex1_2
目前推进之前的分支图如图所示:
然后将分支向前推进两步。
然后,我们发现我们现在的featurex1分支已经开发的非常好了,而且经过完善的测试,所以现在我们想把在feature1中添加的功能合并到master分支中。
就可以切换到master分支中,然后合并feature1分支。
watkins@watkins:~/watkins/finance$ git merge featurex1
Updating fd91f3b..07c0bb7
Fast-forward
funciton3 | 2 ++
1 file changed, 2 insertions(+)
watkins@watkins:~/watkins/finance$
出现了Fast-forward,是因为合并之前master分支的快照指针是featurex1的快照指针的父节点,所以可以直接将master指针向后移动,不许要处理其他的冲突操作等,因为不存在。
当前分支图为:
合并时出现了 “Fast forward”(快进)提示。由于当前 master 分支所在的 commit 是要并入的 hotfix 分支的直接上游,Git 只需把指针直接右移。换句话说,如果顺着一个分支走下去可以到达另一个分支,那么 Git 在合并两者时,只会简单地把指针前移,因为没有什么分歧需要解决,所以这个过程叫做快进(Fast
forward)。
相关文章推荐
- 虚拟项目学习git/github原理与基本操作7
- 虚拟项目学习git/github原理与基本操作1
- 虚拟项目学习git/github原理与基本操作5
- 虚拟项目学习git/github原理与基本操作10
- 虚拟项目学习git/github原理与基本操作6
- 虚拟项目学习git/github原理与基本操作2
- 虚拟项目学习git/github原理与基本操作3
- 虚拟项目学习git/github原理与基本操作4
- 虚拟项目学习git/github原理与基本操作9
- 使用git和github管理自己的项目---基础操作学习
- GitHub入门与实践学习笔记--github学习基础之关于git的基本操作
- 使用git和github管理自己的项目---基础操作学习
- TortoiseGit学习系列之TortoiseGit基本操作将提交到本地的项目推送到在线仓库(图文详解)
- GitHub项目管理基本操作
- Git学习系列之Git基本操作克隆项目(图文详解)
- Github学习之路-小试牛刀,练习Git 的基本操作
- 利用git上传项目到github里面去的基本操作
- TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解)
- 使用git和github管理自己的项目---基础操作学习
- (1) git/github原理与基本操作ABC中的ABC