git - git - 某些文件不是最新的远程提交
问题描述
我们的 git 存储库似乎“忽略”了我们在一段时间内推送的一些提交。我可以在提交历史记录中看到它们,但是当打开/拉取实际文件时,它似乎是在更早的提交中。
遥控器是我们大学托管的 Gitlab。我和我的队友都没有记得做过任何不寻常的事情,并且在存储库历史中也没有出现任何异常。我们只有一个远程分支(master)。
我上周四提交并推送了提交,然后队友 A 立即从存储库中拉取了我刚刚推送的更改。在那之后,队友 B 推送了几个提交。根据git show
Gitlab 中显示的历史记录,队友 B 的提交不会影响我之前提交的文件更改。但是,当我和队友 A 在队友 B 的提交之后进行拉取时,文件被之前的提交覆盖了。
例子:
最新的提交是9c53751e
,但是当我们从远程拉取时,我们得到b690a169
了。
- 同一时间段内同一文件的 git log 输出
commit b690a169b9293d41cd0aa7c0984cc5800aa7dc6b
Author: redacted - author
Date: Thu Mar 14 00:28:31 2019 +0000
redacted - commit message
commit b8ecd472ce00dd71f7fd182a6fac687e7a1127b8
Author: redacted - author
Date: Mon Mar 11 20:41:16 2019 +0000
redacted - commit message
commit 19a93adaa7c8f5cf0bafb9af2ad053cff8113419
Author: redacted - author
Date: Sat Feb 23 23:52:06 2019 +0000
redacted - commit message
commit f0f1a60d57e54d1b5148f4c163d26275d947c9e8
Merge: a307998 0d0dd67
Author: redacted - author
Date: Sat Feb 23 16:09:35 2019 +0000
:...skipping...
commit b690a169b9293d41cd0aa7c0984cc5800aa7dc6b
Author: redacted - author
Date: Thu Mar 14 00:28:31 2019 +0000
redacted - commit message
commit b8ecd472ce00dd71f7fd182a6fac687e7a1127b8
Author: redacted - author
Date: Mon Mar 11 20:41:16 2019 +0000
redacted - commit message
commit 19a93adaa7c8f5cf0bafb9af2ad053cff8113419
Author: redacted - author
Date: Sat Feb 23 23:52:06 2019 +0000
redacted - commit message
commit f0f1a60d57e54d1b5148f4c163d26275d947c9e8
Merge: a307998 0d0dd67
Author: redacted - author
Date: Sat Feb 23 16:09:35 2019 +0000
redacted - commit message
commit a30799825ca0776513fd62468fca436bcaa04ab7
Author: redacted - author
Date: Sat Feb 23 13:17:58 2019 +0000
redacted - commit message
commit 0d0dd67664c63905f3b3a4061a1690a86d5da117
Author: redacted - author
Date: Thu Feb 21 12:30:53 2019 +0000
redacted - commit message
commit 280e11a7315e761440f38257cdffdbd79ea77513
Author: redacted - author
Date: Sun Feb 17 15:24:04 2019 +0000
redacted - commit message
commit 61bbc6da1e1e22f42df1f9b0141dabdaf3b132e5
Author: redacted - author
Date: Sun Feb 17 12:21:38 2019 +0000
redacted - commit message
提交9c53751e
不会出现在此文件的 git 日志中的任何位置。但是,我发现一些提交重复出现很有趣(它在从顶部开始的第 4 次提交之后重复)。
- 整个存储库的 git 日志
commit f52a9891dce9d1fc04287a0cc036ba7a6abfe490
Merge: 37f2c7a 9c53751
Author: Teammate B
Date: Fri Mar 15 12:10:29 2019 +0000
redacted - commit message
commit 37f2c7a2da1c7154edc25542b831cf47e602c779
Author: Teammate B
Date: Fri Mar 15 09:52:12 2019 +0000
redacted - commit message
commit 9c53751e8b6edf6222f3dd7117b0ebf3a640bc68
Author: Me
Date: Thu Mar 14 21:27:33 2019 +0000
redacted - commit message
commit 1c9eb7142a69e67e5c5459a4366dd125c9a85696
Merge: cb01aa8 669d5d1
Author: redacted - author
Date: Thu Mar 14 21:22:58 2019 +0000
redacted - commit message
commit cb01aa82a1a5ab6b311e7cd97a1add29217df2c7
Author: redacted - author
Date: Thu Mar 14 21:22:48 2019 +0000
redacted - commit message
commit 669d5d143e4b2f3734f0cdabc98ade0914f6d2ea
Author: redacted - author
Date: Thu Mar 14 21:02:26 2019 +0000
redacted - commit message
commit 8117b7b68cdb4763728eb93acfc476d2ffc47a3b
Author: redacted - author
Date: Thu Mar 14 20:52:02 2019 +0000
redacted - commit message
commit ac8429422a1eb5698e772efa0fe7d513cf35d41b
Author: redacted - author
Date: Thu Mar 14 20:18:13 2019 +0000
redacted - commit message
在这个 git 日志中,两个最新的提交是队友 B 所做的。“丢失的”提交9c53751e
确实出现在这里。队友 B 的提交没有影响受9c53751e
(使用验证git show f52a9891dce9d1fc04287a0cc036ba7a6abfe490
)影响的任何文件,但9c53751e
被列为合并父级。
所有在周五提交和推送的提交,然后按预期工作,远程指向最新的提交。这包括受上述问题影响的文件。
我怀疑这是一次合并出错,但奇怪的是在历史记录中找不到任何信息。我可以运行任何其他 git 命令来提供一些解释吗?有什么方法可以在不手动查看每个文件的历史并将其拼接在一起的情况下恢复这些提交?
解决方案
推荐阅读
- html - 似乎无法让我的收音机与引导程序内联
- sql - 嵌入式 SELECT 中的 WHERE 子句
- eclipse - 删除和添加 osgi 包
- c++ - A const & refers to a nonvolatile variable. The variable changes. Does the change invalidate the const &?
- ruby-on-rails - 仅在合适的条件下执行工作
- apache-spark - 将 RDD 转换为 Dataframe 后的错误:“java.lang.String 不是 int 架构的有效外部类型”
- node.js - Negating a backreference in regex
- git - Bare and non-bare repo at the server
- c# - 在 C# 中将 3 个混洗字节转换为两个 12 位整数
- json - 如何在数据服务中保存来自 httpclient 的数据以及如何循环通过我的 json 对象