请教一个 git 的问题

214 天前
 Pzdmultiverse

远端仓库上 master 下的 test.txt 文件是这样:

本地 master 下的 test.txt 文件是这样的:

执行了下面这些代码:

问题是为什么本地的文件没有任何变化呢?

2227 次点击
所在节点    git
11 条回复
zwzwzwzwzxt
214 天前
你链接了多个远程仓库吗?本地切到 master 分支检查下 master 的上游是这个 origin2 吗:

```
git rev-parse --abbrev-ref --symbolic-full-name @{u}
```

----

如果用 reset ,可以得到正确的结果吗?

```
git reset --hard origin2/master
```
kylebing
214 天前
https://git-scm.com/book/zh/v2 看完就有答案了
kk2syc
214 天前
得 pull 吧
geelaw
214 天前
告知我们文件内容对 merge 的行为分析是次要的——merge 首先考量的是历史关系,在历史关系的基础上才考虑内容变化。我们需要知道每个 ref 的 commit hash 以及这些 commit 之间的图关系才能告诉你为什么看起来 merge 什么事情都没发生。

运用 psychic debugging 的技巧,最简单的解释是本地的 master 是 origin2/master 基础上新做了几次 commit 的结果,而在 descendant 上 git merge ancestor 的效果是没有任何效果。
ysc3839
213 天前
fetch 不是 checkout ,只会更新 .git 下的元数据。
ysc3839
213 天前
@ysc3839 看漏了下面的 merge 。建议试试 reset
fpk5
213 天前
你这个 master 是不是就是在 origin2/master 的基础上改的?
IamBack
213 天前
可以把节点关系图贴出来,这样大家好帮你判断原因。
daj2
213 天前
合并分支的逻辑是基于提交历史的,你更应该去查看两个分支的历史差异,如果本地分支的变动是基于远端分支之后提交的,自然不会产生变动
Honye
213 天前
觉得 7 楼正解。贴下 Commit Graph 就清楚了
3a10IgjVYjvsH93b
213 天前
本地的代码是基于远程仓库的代码变更的,pull 不该有变化😶‍🌫️😶‍🌫️

要是另一个 developer push 一些内容,就有变化或冲突了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX