【发布时间】:2021-01-03 19:18:31
【问题描述】:
我有一个远程(异地、托管)git 存储库,我正在从两台笔记本电脑访问它。由于我是唯一使用此存储库的人,因此我不必费心拥有单独的分支。通常当我提交并推送到存储库时,我会在我的另一台笔记本电脑上获取并合并。
我现在发现自己的情况是,我在两台计算机上都有一个文件的不同版本,而 git 告诉我不需要做任何事情,也不需要进行更新。
在两台笔记本电脑上,当我键入时
git remote -v
我收到了完全相同的东西——远程仓库的地址
origin git@XYZ.com:myproj.git (fetch)
origin git@XYZ.com:myproj.git (push)
在两台笔记本电脑上都会返回一个 git status 调用:
On branch master
Your branch is up-to-date with 'origin/master'
如果我执行
git remote update
我收到
Fetching origin
然后我打电话
git status -uno
我明白了
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit
最后,如果我打电话
git fetch origin
没有输出。如果我再打电话
git merge
收到回复
Already up-to-date.
当我输入时
git rev-parse HEAD
在两台笔记本电脑上,我收到完全相同的哈希值:
d353340c1.....8503b
据我所知,两台笔记本电脑都认为远程存储库的所有内容都是最新的,但其中一个文件在两台笔记本电脑上明显不同。
这怎么可能,以及我如何才能说明所有内容真正同步的位置?
一台笔记本电脑正在从命令行运行带有 git 版本 2.7.4 的 Ubuntu 16.04。 另一个是 Windows 10,通过 Mintty 终端上的 git bash 2.19.0.windows.1 访问。
【问题讨论】:
-
你试过
git merge FETCH_HEAD吗? -
您能否编辑您的问题以在两个系统上包含
git rev-parse HEAD的输出? -
@bk2204,我的帖子已被编辑添加。
-
有什么不同?您是通过检查还是通过哈希确定的?该文件是实际在存储库中,还是被忽略(您可以使用
git check-ignore查找)? -
通过检查文件不同(其中一个版本中有 4 行)。这也清楚地反映在每个操作系统报告的字节大小差异(几百个)中。存储库中的任何地方都没有 .gitignore 文件,当我输入带有文件名的 git check-ignore 时,它什么也不返回。
标签: git command-line