将当前分支重置为上一次提交后无法推送

时间:2016-04-21 14:55:50

标签: git tortoisegit

第1步:我创建了一个Local Git存储库

步骤2:然后我做了拉(当前分支是主)

第3步:之后我使用重置恢复了合并,如下图所示。

enter image description here

步骤4:之后,如下所示正确显示。

enter image description here

问:我试图将更改推送到远程主控。它给出了以下错误。你能告诉我为什么吗?我正在使用TortoiseGit。感谢。

enter image description here

4 个答案:

答案 0 :(得分:2)

我找到了解决方案。这是步骤。

步骤1:克隆远程存储库(将在默认分支主服务器上签出 自动地)

git clone https://github.com/myrepo/myrepo.git

第2步:重置本地主服务器 - 它会将主服务器更改为指向具有特定SHA的不同提交。

git reset --hard 2f89f2971c3cr45fe187241b8cb89a8ef8234ea3

第3步:推回远程存储库。

git push https://github.com/myrepo/myrepo.git --force

这篇文章给了我很多帮助: Undoing Merges

就是这样。一切都完成了。欢呼:)

答案 1 :(得分:0)

这是一个棘手的情况。您无法以这种方式还原远程存储库,因为远程识别出存储库的状态落后。毫无疑问,更好的解决方案,但您可以删除远程存储库,创建一个具有相同名称的新远程存储库,然后将本地存储库推送到它。

答案 2 :(得分:0)

您可以查看从您之前提交的文件中删除的每个文件,然后再进行新的提交。

我不熟悉toroisegit,但我认为它在某个地方有一个命令行输入,所以步骤将是这样的:

假设你要恢复的提交哈希是29edf27 并且您更改了两个要还原的文件,例如file1.phpfile2.txt

git checkout 29edf27 -- file1.php
git checkout 29edf27 -- file2.txt
git commit -m "reverted commit to 29edf27"
git push origin master

答案 3 :(得分:0)

硬重置分支到选定的提交之后,您只需强制推送您的更改。

VCS - Git - Push - Force push