Discuss / Git / 手动修改后为何查看两个分支中readme文件的内容还是不一样的?

手动修改后为何查看两个分支中readme文件的内容还是不一样的?

Topic source

老师您好,各位同学好,我按照本章的操作,手动修改冲突,在master分支下提交readme,然后分别使用cat readme.txt命令查看两个分支中readme中的内容,发现master分支下的文件中最后一行是:

Creating a new branch is quick and simple.

而feature分支下文件的最后一行是:

Creating a new branch is quick AND simple.

问题是:我再次把两个分支合并的时候,提示Already up to date.,但是两个分支下的文件中内容并不一样啊,这是为什么?求解

映雪流光

#2 Created at ... [Delete] [Delete and Lock User]

是没有add & commit吧

非常好理解呀,

考虑没有冲突情况的合并,当合并完成之后,master分支改变为合并之后的样子,但是此时的feature分支依然保持自身的样子,并没有因为合并而产生变化。

同理,在存在冲突的情况下,合并之后feature分支也依然保持原来的状态没有改变。

一句话总结,

合并操作( merge )只对对当前所在分支产生影响;无论是否存在冲突,合并之后,feature分支都不会发生变化。

库咔拉咔

#5 Created at ... [Delete] [Delete and Lock User]

我也是一样,不知道咋回事

GR-大浩

#6 Created at ... [Delete] [Delete and Lock User]

说明没有合并成功,why?

因为你不能让一个最新的提交往回合并!

解释:

在master分支下修改并提交后,此时master分支已经指向了修改后的新提交,而feature分支仍指向发生冲突的那次提交。

在master分支下执行 git merge feature,会提示“Already up to date.” 

从内容上看,master的提交内容要比feature新;从时间轴上看,master要晚于feature。

解决:

git switch feature // 切换到feature分支

git merge master // 和master合并

合并成功!此时无论你切换到哪个分支,查看改文件的内容都是一样的。

一句话:没有 add  和 commit ,然后就去 merge 了

明天你好

#8 Created at ... [Delete] [Delete and Lock User]

最直接的理解就是你在master分支上,要把feature1上的东西合进来,结果feaature1上改的东西和你在master上的改的是同一个东西(如果改的不一样,就直接合并了),这个时候你修改readme.txt文件,就是在确定master分支上该文件最后要表现成什么样,改完之后就add commit,把master上的改动提交了,这个时候feature1分支上的东西并没有变啊

分支之间修改提交是相互独立的,你只是提交到了master上并没有提交到分支仓库中,分支仓库的内容必然不变


  • 1

Reply