【发布时间】:2020-08-26 20:37:50
【问题描述】:
我错误地将 master 分支拉入到 development 分支并提交了一些更改。
我想恢复拉取和提交。
我试过这个命令
git revert <commit hash>
但它给了我以下错误
commit <commit hash> is a merge but no -m option was given.
如何恢复拉取和提交?
【问题讨论】:
标签: git git-reset git-revert
我错误地将 master 分支拉入到 development 分支并提交了一些更改。
我想恢复拉取和提交。
我试过这个命令
git revert <commit hash>
但它给了我以下错误
commit <commit hash> is a merge but no -m option was given.
如何恢复拉取和提交?
【问题讨论】:
标签: git git-reset git-revert
git revert 不是你在这里需要的,尽管“revert”这个词的口语意义。
相反,您宁愿将分支重置到错误拉取之前的位置:
git checkout develop
git reset --hard @{upstream}
其中@{upstream} 是一个结构,意思是“在上游,就像在远程分支中,这个分支被配置为从中提取”。
在此之后您将无需 --force 任何事情,因为您不会改变历史,而是要坚持下去。
【讨论】:
@{upstream} 不是占位符,这是按原样输入的。然后 Git 将使用这个本地分支 (develop) 链接到的远程分支。如果您的遥控器名为origin,您也可以使用origin/develop,我只是试图保持通用。
运行此命令。
git reset --keep e2djke3 #your commit id
这种变体更安全。然后像往常一样提交更改
【讨论】: