git是分布式版本控制系统,github只是能够让git用起来更方便。
STEP 1 分支的更新
图中每个原点代表某个时间点的工程文件,它们或被存在github的服务器上或是个人电脑上。指向圆圈的箭头表示分支,名为master的分支则是默认的主分支。
HEAD也是个指针,表示当前正在处理的分支,它只能指向分支指针,姑且称之为工作指针。原点向右不断延伸,master指针跟随原点的增加而改变指向,这便是分支上的版本更新。使用分支指针的好处在于可以随时改变指针指向,使得该分支回到过去的某一状态。
拉分支:从任一个原点可以拉出多个原点,形成分支,这些分支可以各自延伸。图中显示用户从master拉了一个feature1分支,并且此后master与feature1各自进行了更新。而HEAD指针的存在使得可以随时切换正在处理的分支。
STEP 3 分支的合并:
上图最右边的圆是将master分支与feature1分支的冲突解决后形成的版本,再将master指向该版本即完成分支的合并。feature1即可删除。
·解决冲突。git会自动比较两个版本间文本的不同,并按格式添加标记在冲突文件中,用户挨个处理冲突的地方,并将git的冲突标记删除,完成后即可正常合并。
图片来自廖雪峰的教程