git工作区与分支关联关系
来源:互联网 发布:黑马程序员电脑版网址 编辑:程序博客网 时间:2024/06/08 16:59
下面结合实例进行分析,假设目前已存在一个代码仓库,里面有两个分支master和test ,两个分支的状态是一样的,都已经提交了一个文件11.txt,文件内容如下:
11111111111
hhaa
现在我们切到master分支,在11.txt文件尾部增加一行字符
do the best
然后用git status查看git仓库状态,如下所示
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: 11.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
表示需要将工作区修改的文件11.txt添加到暂存区并提交。
这时先不做这些操作,直接切换到test分支,然后查看状态,发现打印信息与上面的相同。而我并没有在test分支上对11.txt文件做修改,这是什么原因呢?
如果这种情况下,在test分支或是master上执行git add 11.txt命令操作,添加到暂存区,然后执行git status查看状态,发现两个分支的状态依然是相同的
都打印的是
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: 11.txt
#
切换回master分支,
git commit -m " ”
在master分支上将11.txt文件提交。在master分支和test分支上都执行git status查看状态,打印如下
# On branch test
nothing to commit (working directory clean)
说明工作区内是干净的,没有未提交的文件。
这时通过git log或是gitk查看,发现master分支下多了一条提交,而切换到test上面去看时,发现test上面是没有新增提交的。
反之,如果是在test分支上执行git commit的操作,那么test分支上将会新增这条提交,而master上面没有。
请注意,上面的这些操作,我们都是在两个分支上11.txt文件的内容相同的情况下进行的,进行完上面的操作之后,master分支上11.txt文件已经比test分支上的文件要超前了,
此时如果切换到master分支,然后在文件尾部再增加新内容:
11111111111
hhaa
do the best
good
在本地保存之后,未git add ,也未提交,就试图切换分支到test上面,
git checkout test
error: You have local changes to '11.txt'; cannot switch branches.
如果git add 11.txt之后,还未提交,就切换分支呢,
git checkout test
error: Entry '11.txt' would be overwritten by merge. Cannot merge.
说明git 分支与本地工作区以及暂存区修改的文件是以全局管理的。如果不同分支上最后的一条11.txt文件的提交内容不一致,我们在本地工作区修改,并添加到暂存去,以及提交,都是在这个分支上完成,提交之前是无法切换到其他分支的。当不同分支上最后的一条11.txt文件的提交内容相同时,git仓库同样可以识别到,这时不管切换到哪个分支上做工作区内的修改和添加到暂存区,git仓库并未直接将这两个操作与哪一个分支建立关联,当我们最后执行git commit提交时所在的分支是哪一个,关联关系这时就建立了,工作区的修改,添加暂存区和提交,都关联到是那一个分支上进行的。
- git工作区与分支关联关系
- git 暂存区,工作区和 HEAD分支 关系
- git,本地分支与远程关联
- git新建本地分支自动与远程分支关联
- git 本地分支与远程分支关联的一种方法
- git 本地分支与远程分支关联的一种方法
- git 本地分支与远程分支关联的一种方法
- git关联本地与远程分支git关联本地与远程分支
- git 关联远程分支
- git查看本地分支关联(跟踪)的远程分支之间的对应关系,本地分支对应哪个远程分支
- Git新建本地分支与远程分支关联问题:git branch --set-upstream
- Git新建本地分支与远程分支关联问题:git branch --set-upstream
- Git本地分支与远程分支关联问题(git branch --set-upstream-to=origin/<branch> )
- Git新建本地分支与远程分支关联问题:git branch --set-upstream
- Git 分支工作流程
- Git的工作区与版本库的关系
- git 拉新分支、分支关联、合并分支、分支删除
- git创建本地分支关联远程分支
- 类的加载过程
- Unity中对sprite renderer图片做进度条效果
- 使用JAVA读写Properties属性文件
- 八种“作弊”手法 搞定APP应用推广路
- java的annotaion原理
- git工作区与分支关联关系
- android查看本机可使用的依赖包版本
- uml(十) 构件图
- 乱hash的功力
- eclipse报错java.lang.IllegalArgumentException: Document base J:\code\.metadata\.plugins\org.eclipse.ws
- iOS MMDrawerController侧滑菜单与中心视图手势冲突问题的解决方案(续--点击可收起抽屉)
- Java中的关键字instanceof
- AutoItLibrary安装以及使用(RF)
- spring4+mybatis3+atomikos3.9多数据源分布式事务控制