请教一个 git 的问题

2024-05-22 17:08:46 +08:00
 Pzdmultiverse

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

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

执行了下面这些代码:

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

2603 次点击
所在节点    git
11 条回复
zwzwzwzwzxt
2024-05-22 19:45:14 +08:00
你链接了多个远程仓库吗?本地切到 master 分支检查下 master 的上游是这个 origin2 吗:

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

----

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

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

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

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

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

https://ex.noerr.eu.org/t/1043005

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

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

© 2021 V2EX