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提交时所在的分支是哪一个,关联关系这时就建立了,工作区的修改,添加暂存区和提交,都关联到是那一个分支上进行的。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三无燕窝被打假 怎么办 喜用神为土应该怎么办 喜用神互相克害怎么办? 姓名总格不好怎么办 姓名学里人格不好怎么办 买家订单下不了怎么办 公积金不够月供怎么办 房贷担保费没交怎么办 营业执照过期1年怎么办 营业执照和公章丢失怎么办 个体户怎么办对公账户 公章法人章丢失怎么办 广州买房没有社保怎么办 辞职后计生关系怎么办 广州换工作社保怎么办 学校更名了盖章怎么办 工商注册资金没有交怎么办 住公司宿舍怎么办居住证 住在公司宿舍怎么办居住证 滴滴没有的车型怎么办 假的租房合同怎么办 代注册公司被骗怎么办 公司跨区迁址怎么办 公司搬走注册地怎么办 注册公司没有房产证怎么办 公司不运营了怎么办 公司注销了账户怎么办 租户不变更地址怎么办 营业执照忘审了怎么办 工商营业执照年检过期怎么办 个体营业执照没有年报怎么办? 个体工商户一年没有申报怎么办 个体工商户逾期未申报怎么办 个体户没报税过怎么办 农业银行证书过期了怎么办 ca证书丢了怎么办 ca证书被锁怎么办 上个月忘记清卡怎么办 财务人员进入税务黑名单怎么办 社保本丢了怎么办 贷款车辆登记证书怎么办