gpt4 book ai didi

git - 如何删除github上的最新提交

转载 作者:行者123 更新时间:2023-12-02 00:23:53 27 4
gpt4 key购买 nike

我已经按照这些说明 (How can I remove a commit on GitHub?) 尝试了 rebase ,但似乎没有任何改变。

在我的工作系统计算机 A 上,我有最新版本的代码。我将它推送到我的存储库并回家了。

在这里,在家里的计算机 B 上,我最后一次更新代码是在几个月前。显然,我当天做了一两次更改(没什么重要的),因此发生了 merge 冲突。使用 github desktop 进行“获取”并尝试 merge ;由于不了解 merge 的工作原理,我搞砸了(原来 merge 没有包含很多需要的文件)......但直到为时已晚才知道。然后我尝试做另一个 github 桌面获取/pull ,这样一切都会同步,并且在我的家庭系统上工作后我不会再遇到这个问题。

然后我意识到我丢失了文件,而其他文件已经过时/搞砸了。

在 Github 上,如果我查看提交历史……正确的文件是一次提交。

我想做的就是清除我当前的本地存储库(无论如何都没有任何当前的好文件)并告诉 github 删除最近的提交。然后我将克隆并在家庭系统上重新开始。

但我一辈子都找不到删除 github 上的提交的方法。

编辑:鉴于@Alex Harvey 坚持认为链接的说明有效,我回到了链接。第一个答案没有运气(本地 repo 中没有任何改变)我选择了另一个有 800+ 赞成票的选项。我使用了命令:git push -f origin HEAD^:master

不幸的是,这从我的 github 存储库中删除了大约 100 个最近的提交。自从我上次将家用计算机与 github 存储库同步以来,它似乎删除了 github 上的所有提交——很多个月前。

帮忙吗?

EDIT2:明确地说,我的系统已经几个月没有被使用或同步到 github 存储库了。在过去的几个月中,唯一的本地提交是我所做的“merge ”提交,它开始了整个困惑。我怀疑退回一个提交然后强制推送会导致 github 存储库及时回到这个系统几个月前的样子。

EDIT3:我去了工作系统并执行了“git push origin master --force”并恢复了我的工作。

最佳答案

如果你真的想删除 GitHub 分支上的 HEAD(最新)提交,那么你可以这样做:

git checkout your_branch
git reset --hard HEAD~1
git push --force origin your_branch

但是(斜体可能还不够强调),大多数时候您不想使用这个选项。原因是删除 HEAD 提交然后强制推送有效地重写了 your_branch 的公共(public)历史。这反过来会给共享该分支的任何其他人带来问题。

如果您确定您是唯一使用此分支的人,那么硬重置可能是合理的。否则,我建议使用 git revert:

git revert HEAD

这实际上会在 your_branch 之上添加一个 提交,这将在功能上撤消之前的 HEAD 提交。即使分支由多个人共享,此选项也是安全的。

关于git - 如何删除github上的最新提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54453860/

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