如何删除远程git提交头?
我用git merge弄乱了很多代码,在这个过程中也丢失了我的工作 我的处境是:如何删除远程git提交头?,git,github,Git,Github,我用git merge弄乱了很多代码,在这个过程中也丢失了我的工作 我的处境是: 提交A-我首先从远程提取了这个并合并了它 提交B-我按下了合并的提交 提交C-我仍然有一些合并冲突,所以我再次合并并推送 现在,遥控器包含commitCasHEAD。它是完全有缺陷的,而且,我丢失了我的代码。解决这个问题的唯一方法是删除提交B和C。恢复到提交A,然后重新执行该工作 请告诉我是否有一种安全的方法来删除提交B和C,而不破坏其他提交?如果可能,建议其他解决方案 谢谢。您可以签出提交,从中创建一个新分支
- 提交
-我首先从远程提取了这个并合并了它A
- 提交
-我按下了合并的提交B
- 提交
-我仍然有一些合并冲突,所以我再次合并并推送C
C
asHEAD
。它是完全有缺陷的,而且,我丢失了我的代码。解决这个问题的唯一方法是删除提交B
和C
。恢复到提交A
,然后重新执行该工作
请告诉我是否有一种安全的方法来删除提交B
和C
,而不破坏其他提交?如果可能,建议其他解决方案
谢谢。您可以签出提交,从中创建一个新分支,然后推动此分支并在将来使用它 基本上,你应该:
您现在将处于分离状态git checkout A
根据需要验证您的所有更改git checkout-b新建分支机构
git推送原点新分支机构
- 在上面的最后一步中,使用
git推送原点新分支:原点上的旧分支
- 或局部重置分支上的头部并用力推动
git checkout old_分行
git复位头——硬A
git推送原点-f旧分支
上述第二种方法的问题是,如果其他开发人员已经引入您的更改并开始处理这些更改,则由于强制推送,他的机器上的分支历史可能会不同步。我从以下方面找到了解决方案: 步骤1:为了在本地重置磁头(将A视为提交id) git重置--很难 步骤2:用于重置遥控器中的磁头 git推送-f原点A:主 完成
现在,我的提交B和C已从远程删除,头部指向A。我无法将头部重置为提交A,我得到了错误。。无法使用pathsCan进行硬重设签出第一种方法中提到的提交,然后呢?尝试一下,并让我知道在任何情况下完整的错误跟踪