git 看不到分支的变化,aftergit push origin remote_branch和 comparing withmaster不显示变化,虽然对文件做了很多修改,但是和 master 比较没有显示出任何差异。
怀疑这些更改已经在此分支上提交并删除,现在 git 看不到此提交,因此也看不到它的更改。
这是一张照片:
git checkout -b new_branch
git commit -m "some commits"
git push origin new_branch
git checkout -b my_new_branch_2
git pull origin new_branch
此时,我获得了分支中的所有提交new_branch并删除了文件中的一些更改test.txt
git push origin my_new_branch_2
git checkout master
git merge my_new_branch_2
在这里,我与主人融为一体。
现在,当我们尝试与new_branch我之前从中提取的分支中的 mater 合并时,它说文件中没有任何更改test.txt
什么是“分支”
它只是指向某些提交的指针。所有提交都组织在一个图中,其中每个提交(第一个提交除外)都有一个祖先。因此,对于一次提交,您可以拉出整个链 - 直到第一个。像这样拉取的所有提交都称为“分支 X 上的提交”或“属于分支 X”。
假设是这样的:
他在做什么
git checkout -b此命令创建一个新分支,指向当前分支指向的同一提交:
即执行该命令后,分支
new_branch和my_new_branch_2是相同的。他在做什么
git pull origin имяветки该命令
git pull将远程存储库中的分支合并到当前分支中。如果您冻结已经属于当前分支的提交(即沿祖先链可用),则合并不会进行任何更改。如果除了你之外没有人推送到 branch
new_branch,那么它指向与Dbranch相同的提交my_new_branch_2,所以这个命令什么都不做:祖先合并
如果在那之后你做了更多的提交
my_new_branch_2,但没有改变new_branch,那么第二个实际上是第一个的“一部分”。该分支new_branch指向一个提交,该提交D是其祖先E,因此属于该分支my_new_branch_2:当您合并
my_new_branch_2到master时,分支的提交也作为该分支的一部分出现new_branch。合并最有可能根据“快进”模型发生——当指针master简单地向前移动到指针时my_new_branch_2:因此,尝试重新冻结
new_branch是master行不通的。