gpt4 book ai didi

git - 无法选择一个提交到分支(坏对象错误)

转载 作者:行者123 更新时间:2023-12-04 01:35:37 27 4
gpt4 key购买 nike

好的,所以我们一般的 git 结构是我们有一个 master 分支,一个或多个 release 分支,然后是 feature 分支。所有主要开发都发生在功能分支中,但错误修复有时会直接提交给发布分支。

在将一些功能 merge 到发布分支时,有一个错误的 merge ,但直到后来提交了几个错误修复,我们才注意到它。一些功能分支在 merge 后被删除(我们将改变我们的工作流程,使其仅在未来发生实际发布后才执行)。如果它们没有被删除,我们只会废弃发布分支并重做。

我现在正试图消除这种糟糕的 merge 。我在 merge 之前从发布分支创建了一个新的发布分支。

git checkout <hash prior to merge>
git checkout -b new_release_branch
git merge feature_branch_which_resulted_in_bad_merge_before

这个分支现在是我们想要的方式,但我仍然需要引入在错误 merge 后对 release_branch 进行的少数(少于 5 个)提交。但我不知道该怎么做。我认为 cherry-pick 是要走的路,但当我尝试时,我得到:

$ git cherry-pick fa4a761
错误:fa4a761:无法挑选 blob
致命: cherry-pick 失败

$ git cherry-pick 44923992349dae68d982dd305a289ba63f8f6d0b
fatal: bad object 44923992349dae68d982dd305a289ba63f8f6d0b

请注意,上面的哈希是从 gitk 复制/粘贴的,但它不会显示在我的任何分支的任何 git 日志中。

我还回去检查了我现在尝试修复的所有提交,它们都是一样的。我不确定这意味着什么,或者为什么它们会出现在 gitk 而不是 git log 中(gitk 从哪里获取信息?)。


好的,更新时间。这是我遗漏的故事的其余部分。当我发现损坏的 merge 时,我创建了一个新的 repo 克隆,以便从我们的中央 repo 中“玩”。

事实证明,所有问题提交都从未从存储库的原始副本推送到中央存储库。一旦我推送了这些提交,我就能很好地解决所有问题。

最佳答案

您需要执行 git fetch 以获取与本地同步的最新提交

git 获取

然后做

git cherry-pick

关于git - 无法选择一个提交到分支(坏对象错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com