Github public 重写历史后存储库搞砸了
Github public repository messed up after history rewritten
我们的 GitHub public 存储库 lyrgard/ffbeEquip 有问题,我是其中的重要贡献者。
最近,主要维护者和开发者Lyrgard发现他的工作邮箱被用于一些提交信息。
因此,他按照 this helpful Github script 将所有工作电子邮件替换为他的个人电子邮件。因此,git 历史被完全改写。我们 知道 当然这不是一件应该轻易做的事情。但他不能冒险让他的工作地址与他的爱好项目相关联。
但是,问题是现在我们有多个过去的提交。甚至我的提交都显示了两次!
Github script 什么也没说。我们试图在网上搜索答案,但找不到任何有用的信息。我们不是 git 方面的专家,我相信您现在已经明白了。
我们实际尝试的是:
我们很想了解发生了什么,目前的情况如何,我们该如何解决。
非常感谢您的帮助。
[首先编辑以添加详细信息]
这是 master 上的 git log
输出:
commit b2d98cb6674b0a9d2c457cdcf5bf7dc1271d87c5 (HEAD -> master, origin/master)
Author: Lyrgard <lyrgard@gmail.com>
Date: Thu Aug 30 06:55:43 2018 +0200
added Golden Apple to recently released items
commit 850244a19880ddcbc0637a17ab01241d6ef0133a
Merge: 362d9a14 ef8c6e12
Author: Lyrgard <lyrgard@gmail.com>
Date: Thu Aug 30 06:53:18 2018 +0200
Merge branch 'master' of https://github.com/lyrgard/ffbeEquip
commit 362d9a1409470bd498e5787daa7817400aedd5f1
Merge: 99618a7e 1bca87ad
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:04:46 2018 +0200
Merge branch 'Indigo744-encyclopedia_killers'
commit ef8c6e125e6d76d04a0fe28e74fce5439bc4f9f2
Merge: 09722cee 8c1b8394
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:04:46 2018 +0200
Merge branch 'Indigo744-encyclopedia_killers'
commit 1bca87ad243079e0df0599a8e8e414b75b580f68
Merge: 99618a7e 4ce21f1e
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:02:28 2018 +0200
Merge branch 'encyclopedia_killers' of https://github.com/Indigo744/ffbeEquip into Indigo744-encyclopedia_killers
commit 8c1b83944ade8dbc1eaf1576df00c8e4c46a051b
Merge: 09722cee 5fc10187
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:02:28 2018 +0200
Merge branch 'encyclopedia_killers' of https://github.com/Indigo744/ffbeEquip into Indigo744-encyclopedia_killers
如你所见,有两个Merge branch 'Indigo744-encyclopedia_killers'
和两个Merge branch 'encyclopedia_killers' of...
当然,commit sha 是不相等的(否则,我认为会有很大的问题)但是我不明白为什么会有多个提交?
[第二次编辑以添加有关 发生的更多详细信息]
在评论中与@matthiasbe 讨论并仔细审查 git 分支(并与 Lyrgard 讨论)后,这里实际发生了什么:
- 他将存储库克隆到一个干净的临时存储库中
- 他在这个 repo 上使用 github 脚本
filter-branch
来重写历史记录
- 他把整个新历史推向了GitHub。
- 删除临时存储库。 现在,一切都很好
- 去睡觉了。第二天早上,去他通常的仓库,从 Github
中提取更改
- 对其进行一些处理,提交并推送到 Github。 这里其实是不行的地方
现在 GH 有两个历史记录(旧的和新的),因为在第二个(通常的)repo 中,他应该有 rebase 或删除并克隆一个新的。
现在我们知道发生了什么,我们需要能够从历史中恢复这个合并
我正在查看 rebase -i
命令,但找不到任何合并提交。我们将不胜感激。
好的,一切恢复正常。
真正拯救我们的是 Lyrgard 仍然拥有他用于 filter-branch
的临时存储库。这是一个 "clean" 回购协议,意味着只有新的历史记录,但日期是昨天的(即缺少今天的提交)。
我们做了什么:
- 将当天的每个新提交(它们是 3 个提交)保存在单独的补丁文件中。
- 克隆临时 "clean" 回购到另一个
- 每次应用补丁并提交(使用相同的消息)
- 强制将此 repo 推送到 Github。 GitHub 现在干净了。
- 删除所有其他本地存储库
- 从 Github
克隆
终于...谢谢matthiasbe的帮助。
我们的 GitHub public 存储库 lyrgard/ffbeEquip 有问题,我是其中的重要贡献者。
最近,主要维护者和开发者Lyrgard发现他的工作邮箱被用于一些提交信息。
因此,他按照 this helpful Github script 将所有工作电子邮件替换为他的个人电子邮件。因此,git 历史被完全改写。我们 知道 当然这不是一件应该轻易做的事情。但他不能冒险让他的工作地址与他的爱好项目相关联。
但是,问题是现在我们有多个过去的提交。甚至我的提交都显示了两次!
Github script 什么也没说。我们试图在网上搜索答案,但找不到任何有用的信息。我们不是 git 方面的专家,我相信您现在已经明白了。
我们实际尝试的是:
我们很想了解发生了什么,目前的情况如何,我们该如何解决。
非常感谢您的帮助。
[首先编辑以添加详细信息]
这是 master 上的 git log
输出:
commit b2d98cb6674b0a9d2c457cdcf5bf7dc1271d87c5 (HEAD -> master, origin/master)
Author: Lyrgard <lyrgard@gmail.com>
Date: Thu Aug 30 06:55:43 2018 +0200
added Golden Apple to recently released items
commit 850244a19880ddcbc0637a17ab01241d6ef0133a
Merge: 362d9a14 ef8c6e12
Author: Lyrgard <lyrgard@gmail.com>
Date: Thu Aug 30 06:53:18 2018 +0200
Merge branch 'master' of https://github.com/lyrgard/ffbeEquip
commit 362d9a1409470bd498e5787daa7817400aedd5f1
Merge: 99618a7e 1bca87ad
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:04:46 2018 +0200
Merge branch 'Indigo744-encyclopedia_killers'
commit ef8c6e125e6d76d04a0fe28e74fce5439bc4f9f2
Merge: 09722cee 8c1b8394
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:04:46 2018 +0200
Merge branch 'Indigo744-encyclopedia_killers'
commit 1bca87ad243079e0df0599a8e8e414b75b580f68
Merge: 99618a7e 4ce21f1e
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:02:28 2018 +0200
Merge branch 'encyclopedia_killers' of https://github.com/Indigo744/ffbeEquip into Indigo744-encyclopedia_killers
commit 8c1b83944ade8dbc1eaf1576df00c8e4c46a051b
Merge: 09722cee 5fc10187
Author: Lyrgard <lyrgard@gmail.com>
Date: Wed Aug 29 23:02:28 2018 +0200
Merge branch 'encyclopedia_killers' of https://github.com/Indigo744/ffbeEquip into Indigo744-encyclopedia_killers
如你所见,有两个Merge branch 'Indigo744-encyclopedia_killers'
和两个Merge branch 'encyclopedia_killers' of...
当然,commit sha 是不相等的(否则,我认为会有很大的问题)但是我不明白为什么会有多个提交?
[第二次编辑以添加有关 发生的更多详细信息]
在评论中与@matthiasbe 讨论并仔细审查 git 分支(并与 Lyrgard 讨论)后,这里实际发生了什么:
- 他将存储库克隆到一个干净的临时存储库中
- 他在这个 repo 上使用 github 脚本
filter-branch
来重写历史记录 - 他把整个新历史推向了GitHub。
- 删除临时存储库。 现在,一切都很好
- 去睡觉了。第二天早上,去他通常的仓库,从 Github 中提取更改
- 对其进行一些处理,提交并推送到 Github。 这里其实是不行的地方
现在 GH 有两个历史记录(旧的和新的),因为在第二个(通常的)repo 中,他应该有 rebase 或删除并克隆一个新的。
现在我们知道发生了什么,我们需要能够从历史中恢复这个合并
我正在查看 rebase -i
命令,但找不到任何合并提交。我们将不胜感激。
好的,一切恢复正常。
真正拯救我们的是 Lyrgard 仍然拥有他用于 filter-branch
的临时存储库。这是一个 "clean" 回购协议,意味着只有新的历史记录,但日期是昨天的(即缺少今天的提交)。
我们做了什么:
- 将当天的每个新提交(它们是 3 个提交)保存在单独的补丁文件中。
- 克隆临时 "clean" 回购到另一个
- 每次应用补丁并提交(使用相同的消息)
- 强制将此 repo 推送到 Github。 GitHub 现在干净了。
- 删除所有其他本地存储库
- 从 Github 克隆
终于...谢谢matthiasbe的帮助。