创建分支
问题
假设本地的某个git repository下有a.md文件,刚开始的时候只有master分支,则该文件只有一行内容;此时,我们在该repository下新建一个dev分支;然后在master分支在第一行的基础下我们添加一行并提交,在dev分支下也添加一行不同的内容并提交;那么两次提交后a.md的文件内容到底是什么样的?
实验
1、准备目录与文件
创建一个目录learngit,且在该目录下新建一个a.md
文件,文件内容为
2、初始化git仓库
在该目录下依次执行以下命令来初始化仓库
此时该仓库就会有一个master分支,可用git branch
命令查看分支信息;其中 * 表示当前所在的分支
3、创建分支dev
在learngit目录下执行命令`git branch dev`创建dev分支,再次查看分支信息
此时在master与dev分支下查看到的文件内容都是一样的
4、master分支更改
在master分支下,在文件a.md的尾部添加一行`row added by master`,然后执行以下命令提交
此时查看a.md的内容
执行命令`git checkout dev`切换到dev,查看文件内容;发现文件内容并没有发现master添加的那一行
5、dev分支更改
在dev分支下,在文件a.md的尾部添加一行`row added by dev`,然后执行以下命令提交
此时查看a.md的内容
执行命令`git checkout master`切换到master,查看文件内容;发现文件如下
6、其他发现
执行完上面的5个步骤后, 我们不再修改文件内容,而只是执行`git checkout master`或`git checkout dev`来切换分支,结果发现每次执行切换分支命令,a.md的修改时间都会发生变化,而且就是执行切换分支命令的时间
结论
1、我们在哪个分支下,就只会看到那个分支的内容
2、当在一个分支下修改了内容,却没有commit就切换到另一个分支时,就会报错,拒绝切换(已验证)
分析
当每一次执行git checkout [branch]
时,git会把该分支的内容复写到该目录下,这样我们每次切换分支后,看到的都是该分支的内容,而且文件的修改时间也是执行切换分支命令的时间
Last updated
Was this helpful?