相关疑难解决方法(0)

为什么git revert抱怨缺少-m选项?

所以我正在与其他人一起开展一个项目,并且有多个github forks正在进行中.有人刚刚修复了一个问题并且我与他的分叉合并,但后来我意识到我可以找到更好的解决方案.我想恢复我刚刚提交的提交.我试过这样做,git revert HEAD但它给了我这个错误:

fatal: Commit <SHA1> is a merge but no -m option was given.

那是什么意思?当我合并并提交时,我确实使用-m选项说"Merged with <username>".

我在这做错了什么?

git github git-revert

156
推荐指数
3
解决办法
9万
查看次数

将推送的分支恢复为具体提交

我已将dev分支(具有常量,有时不稳定的更改)合并到我们的主分支(我们存储已发布的稳定代码).我想将master分支恢复到之前的状态,就像从未发生与dev分支的合并一样(并且在将来我们合并dev分支时,我们现在将丢弃的所有更改将再次"合并").

这是主分支的当前状态,我希望它在HEAD上具有'professional-1.1.2'提交/标记.

主分支的状态

我试过了:

$ git revert -n professional-1.1.2..HEAD
fatal: Commit 9167e846a387c793edbc089c7ab6bd9eb8260456 is a merge but no -m option was given.
$ git revert -n -m 1 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
$ git revert -n -m 2 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
Run Code Online (Sandbox Code Playgroud)

经过一些研究后,我认为更好的选择是做一个git reset --hard professional-1.1.2git push --force作为Git的答案:如何忽略快进并将原点[branch]恢复到之前的提交?或者还原push'd git commit.其他开发人员在同一个办公室,他们永远不应该承诺任何东西(因为我不应该,但是......是的,我们没有每个分支的权限),所以告诉他们并做任何事都不是一个大问题需要采取的行动.

所以最后的问题是:git revert something或者git …

git git-revert git-reset

4
推荐指数
2
解决办法
9740
查看次数

标签 统计

git ×2

git-revert ×2

git-reset ×1

github ×1