
远端仓库上 master 下的 test.txt 文件是这样: 
本地 master 下的 test.txt 文件是这样的: 
执行了下面这些代码: 
问题是为什么本地的文件没有任何变化呢?
1 zwzwzwzwzxt 2024 年 5 月 22 日 你链接了多个远程仓库吗?本地切到 master 分支检查下 master 的上游是这个 origin2 吗: ``` git rev-parse --abbrev-ref --symbolic-full-name @{u} ``` ---- 如果用 reset ,可以得到正确的结果吗? ``` git reset --hard origin2/master ``` |
2 kylebing 2024 年 5 月 22 日 https://git-scm.com/book/zh/v2 看完就有答案了 |
3 v1 2024 年 5 月 22 日 得 pull 吧 |
4 geelaw 2024 年 5 月 22 日 via iPhone 告知我们文件内容对 merge 的行为分析是次要的merge 首先考量的是历史关系,在历史关系的基础上才考虑内容变化。我们需要知道每个 ref 的 commit hash 以及这些 commit 之间的图关系才能告诉你为什么看起来 merge 什么事情都没发生。 运用 psychic debugging 的技巧,最简单的解释是本地的 master 是 origin2/master 基础上新做了几次 commit 的结果,而在 descendant 上 git merge ancestor 的效果是没有任何效果。 |
5 ysc3839 2024 年 5 月 23 日 fetch 不是 checkout ,只会更新 .git 下的元数据。 |
7 fpk5 2024 年 5 月 23 日 你这个 master 是不是就是在 origin2/master 的基础上改的? |
8 IamBack 2024 年 5 月 23 日 可以把节点关系图贴出来,这样大家好帮你判断原因。 |
9 daj2 2024 年 5 月 23 日 合并分支的逻辑是基于提交历史的,你更应该去查看两个分支的历史差异,如果本地分支的变动是基于远端分支之后提交的,自然不会产生变动 |
10 Honye 2024 年 5 月 23 日 觉得 7 楼正解。贴下 Commit Graph 就清楚了 |
11 3a10IgjVYjvsH93b 2024 年 5 月 23 日 本地的代码是基于远程仓库的代码变更的,pull 不该有变化 要是另一个 developer push 一些内容,就有变化或冲突了。 |