尝试用git重置远程分支的问题

问题描述 投票:0回答:1

我在原点/母版后面有要使用的母版分支。如何删除远程上的最新提交?我无法进行推送,因为当前分支的尖端在其远程对应的后面,但我不想合并两者。

enter image description here

git github atlassian-sourcetree
1个回答
0
投票

如何删除远程上的最新提交?

从技术上讲,您不能-但您可以使另一个Git在最后一个提交之前使其master指向提交。这将使另一个Git“忘记”最新提交。每当其他Git到处运行维护命令时,该提交将被[[最终删除。只要没有其他人重新介绍该提交,那就足够了。 (与此同时,其他任何人都可以从该服务器获取提交。)

我无法进行推送,因为当前分支的尖端在其远程对应的后面...

您可以并且通常

必须

进行推送。您需要告诉Git的是以命令的形式发送其最终请求,而不是礼貌的请求。[git push的作者:

    让您的Git调用其他Git;
  1. 让您的Git在需要时给Git新的提交;
  2. 结束与您的Git的会话,礼貌地询问其他Git:
  3. 请,如果可以,将您的分支_____设置为提交_____
(用分支名称和哈希ID填写空白)。您的Git不会发送任何Git信息(因为您没有任何新知识),然后要求他们将其master设置为指向提交Rediseño del header y del overlay ...(无论其实际的哈希ID是什么,就像您的名字中找到的[ C0])。

他们会说

no

,并且他们说不的原因(他们也都会通过)是:如果这样做,我将无法访问主题为“ Cabiados componentes y header”的提交。 (无论其哈希ID实际是什么)。拒绝的形式为master,表示我可能会丢失一些提交但是这正是您

想要

他们的Git要做的事情:“丢失”提交,因此它被“遗忘了”,最终将被删除。那么,您需要停止礼貌地问。向他们发送一个强制命令:

设置您的rejected (non-fast-forward)

他们can仍然拒绝,但是如果您拥有允许这种强制推送的权限,它们将服从并丢失提交。] >此强制命令有两种形式:

  • 一个-不太认真的一个-是仅运行master会得到的结果。这只是发送命令:

    将您的git push --force origin master设置为_____!

    (通过在您自己的Git存储库中找到正确的哈希ID来填充空白)。
  • 更谨慎的方法是master。该命令以以下形式发送命令:

    我认为您的git push --force-with-lease是_______。如果是这样,请将其设置为_______!如果不是,请告诉我我的想法是错误的。

  • 您的Git会用master中的内容填充第一个空白:您的Git在上一次与他们的Git进行的对话中记住的哈希ID 。您的Git会以通常的方式填写第二个哈希ID。
    如果没有其他人向其他Git存储库添加任何提交,则您的origin/master仍将与它们的origin/master相匹配。如果master

    失败

    ,则意味着其他人可能利用了您尝试丢弃的提交;您应该--force-with-lease选择新的提交,并与其他人进行实际的人与人对话,以找出解决方法。
    [如果您不知道其他人正在使用该其他Git存储库,或者至少在那个Git存储库中使用该分支,则git fetch origin就足够了。如果不确定,即使为了安全起见,也最好与其他用户[[first协商。
    © www.soinside.com 2019 - 2024. All rights reserved.