这样一个场景,同事B来了,他说我要开发,不让开发就不爽,那么怎么做呢,打是肯定舍不得的,让他拉个代码分支啊,且看操作一:先通过命令:git clone ssh://账号@ip:/目录/文件名,把文件从服务器上拉下来
这个时候指向图是这样的
二:切换分支:git checkout -b feature/002【用过svn的童鞋对整个应该眼熟】
三:我们看一下指向
通过上图我们看到,head指向了feature/002快照版本
这个时候指向图是这样的
这个时候本地的feature/002版本跟master是保持一致的
四:做个小实验
然后我们进行一个操作看看这个分支到底是怎么个回事,我们来做这样一个实验,首先我们在feature/002环境下修改代码,如下
然后切换到master分支对Test2.java进行提交【git add --all .,git commit -m '……'】,之后我们切换到feature/002环境下,我们发现我们加的一行代码没有了
我们分别在feature/002和master分支执行git log,看下git日志
通过上图,我们清晰的看到feature/002还停留在之前的版本,而master分支又走了一个版本,master比feature/002新,其实这是我们不太愿意看到的
当git切换到master,head就指向master,git切换到feature/002,head就指向/feature/002
五:修改分支
同事B根据需求对分支的Test1.java进行修改
日志如下
然后提交,提交之后分支情况如下
六:版本合并
我们发现master和feature/002两个分支都各自有了新的版本,但最终数据是需要一致的,于是我们做一下合并操作
操作命令:git merge feature/002
然后我们看一下操作日志
这个时候版本如下