我在我的项目中使用git存储库.我不小心推了2个我不应该提交的提交.在某些人之间已经做出了承诺.是否可以删除我推送的提交,或者我必须删除我的代码更改并将其作为新提交推送,因为有人已经提交了它.
Git Master分支:
由我提交一个//
承诺B //由我
由某人提交C //
现在我必须删除提交A和B离开提交C.任何帮助将非常感谢.
如何在github.com托管的git远程上删除提交?我已经在SO上找到了多个答案,展示了如何从分支的提交历史中删除提交.我尝试了这些,但是我的提交仍然清晰可用,因为我可以使用其哈希直接浏览它.
所以为了清楚起见,我的问题不是如何从我的遥控器上所有分支的提交历史中删除提交.我的问题是如何删除提交本身,以便在我之前推送我的分支的git遥控器上没有它的记录.
我试过的解决方案包括:
编辑: Git:从远程分支永久删除一些提交是另一个不适合我的解决方案.这个特定解决方案不起作用的原因是因为它保持"git push - 强制你修改的本地分支到远程.",它不会从远程删除提交,而只是从当前的提交历史中删除它们科.
我推了错误的分支,我想推进新的分支,但我已经推进了master分支.有没有办法反转上次提交的推送并获取最后一个代码并再次推送到新分支?
我不小心添加并提交了一份来自我本地仓库的文件,我不希望将其添加到我的GitHub项目的回购中.我可以用终端删除此文件还是可以在线手动删除?
正如您可能从标题中猜到的那样,我不小心推送了一个 commit。我想知道是否还有办法删除或删除它?
尽管已经有人问过这个问题(如这里),但我认为向网站添加更新版本会很有用,因为我不确定那里提供的答案今天是否仍然适用。
提前致谢!
我已经按照这些说明尝试了 rebase(如何删除 GitHub 上的提交?),似乎没有任何变化。
在计算机 A(我的工作系统)上,我拥有最新版本的代码。我把它推到我的仓库然后回家了。
在这里,在家里的计算机 B 上,我上次更新代码是几个月前。显然我当天做了一两个更改(没什么重要的),因此出现了合并冲突。使用 github 桌面进行“获取”并尝试合并;由于不了解合并的工作原理,我搞砸了一些东西(结果合并没有包含大量所需的文件)......但直到为时已晚才知道。然后我尝试做另一个 github 桌面获取/拉取,这样一切都会同步,并且在我的家庭系统工作后我不会再遇到这个问题。
然后我意识到我丢失了文件,并且其他文件已旧/搞砸了。
在 Github 上,如果我查看提交历史记录……正确的文件是一次提交回来的。
我想做的就是删除我当前的本地存储库(无论如何它都没有任何当前的、好的文件)并告诉 github 删除最近的提交。然后我将克隆并在家庭系统上重新开始。
但我一生都找不到删除 github 上提交的方法。
编辑: 鉴于@Alex Harvey 坚持认为链接的指令有效,我回到了链接。由于第一个答案没有运气(本地存储库中没有任何变化),我选择了另一个拥有 800 多个赞成票的选项。我使用了命令:git push -f origin HEAD^:master
不幸的是,这从我的 github 存储库中删除了大约 100 个最新提交。看起来它删除了 github 上的所有提交,因为我上次将我的家庭计算机与 github 存储库同步 - 几个月前。
帮助?
EDIT2:需要明确的是,我的系统已经有几个月没有被使用或同步到 github 存储库了。过去几个月里唯一的本地提交是我所做的“合并”提交,它引发了整个混乱。我怀疑回退一次提交然后强制推送会导致 github 存储库回到几个月前这个系统的样子。
EDIT3:我进入工作系统并执行了“git push origin master --force”并恢复了我的工作。
我正在使用 SourceTree 并且对 git 仍然相当陌生。我试图将一个版本与另一个版本合并以开始在其远程分支上处理下一个版本,但它没有按我预期的那样工作。我能够通过将它拉到我的本地来回到我想要的提交,但是现在它只有一个“HEAD”标签,而“origin/[version]”仍然是大约 5 次提交。无论如何要强制远程分支忘记我所做的一切并跟踪我正在使用的当前提交?谢谢。
我将我的代码推送到 github 并没有意识到我在那里有我的访问令牌。这给我带来了两个问题
有没有隐藏提交?
在那里拥有访问令牌真的那么糟糕吗?
谢谢你