Git 我在没有请求的情况下直接推送到开发分支,如何撤销它?

Git 我在没有请求的情况下直接推送到开发分支,如何撤销它?,git,repository,bitbucket,git-revert,Git,Repository,Bitbucket,Git Revert,我正在尝试取消所有由james plus推动的提交,并在我的本地上获得他的提交,然后返回由brandon推动的提交,这是 d65fa2faf06a5c4d8d379f963feece2bf2edef98. 我试过了 git revert a586cc1ff0c5abf535a4d0873c458a812dca28dd..1dcc0e8adc5433a5b092e3b813496ac52de7aa43 --但不知什么原因,我犯了这个错误 hint: Waiting for your

我正在尝试取消所有由james plus推动的提交,并在我的本地上获得他的提交,然后返回由brandon推动的提交,这是

d65fa2faf06a5c4d8d379f963feece2bf2edef98. 
我试过了

git revert a586cc1ff0c5abf535a4d0873c458a812dca28dd..1dcc0e8adc5433a5b092e3b813496ac52de7aa43
--但不知什么原因,我犯了这个错误

    hint: Waiting for your editor to close the file... error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
最后,它只会还原为1dcc0e8adc5433a5b092e3b813496ac52de7aa43

这是我开发分支的git日志

commit 1dcc0e8adc5433a5b092e3b813496ac52de7aa43 (origin/develop, feat_SS_250.fixes)
Author: <james@ueharanoMacBook-Pro.local>
Date:   Tue Feb 5 17:50:20 2019 +0900

    schema added

commit fee01a2dcf3432b7da6e9e6b1ff030ad288d919d
Author: <james@ueharanoMacBook-Pro.local>
Date:   Tue Feb 5 17:48:49 2019 +0900

    rebase

commit 7f226d84029e608721417b8e99be1a88c6ae3a84
Author: <james@ueharanoMacBook-Pro.local>
Date:   Tue Feb 5 16:03:07 2019 +0900

    initial commit

commit a586cc1ff0c5abf535a4d0873c458a812dca28dd
Author: <james@ueharanoMacBook-Pro.local>
Date:   Thu Jan 24 11:42:08 2019 +0900

    added login.php

commit d65fa2faf06a5c4d8d379f963feece2bf2edef98
Author: brandon <brandon@xxxx.co.jp>
Date:   Tue Feb 5 14:52:04 2019 +0900

    feat: fp 50

commit 9988b6587f9e2fa77d86e9e1f856bf57e667daca
Author: brandon <brandon@xxxx.co.jp>
Date:   Tue Feb 5 14:25:51 2019 +0900

    feat: contract 50
commit 1dcc0e8adc5433a5b092e3b813496ac52de7aa43(源代码/开发、专长和250.修复)
作者:
日期:2019年2月5日星期二17:50:20+0900
添加模式
提交FEE01ADCF3432B7DA6E9E6B1FF030AD288D919D
作者:
日期:2月5日星期二17:48:49 2019+0900
重基
提交7F226D84029E60871417B8E99BE1A88C6AE3A84
作者:
日期:2019年2月5日星期二16:03:07+0900
初始提交
提交a586cc1ff0c5abf535a4d0873c458a812dca28dd
作者:
日期:2019年1月24日星期四11:42:08+0900
添加了login.php
提交D65FA2FA06A5C4D8D379F963FEECE2BF2BEDEF98
作者:布兰登
日期:2019年2月5日星期二14:52:04+0900
专长:FP50
提交9988b6587f9e2fa77d86e9e1f856bf57e667daca
作者:布兰登
日期:2月5日星期二14:25:51 2019+0900
壮举:合同50
您可以

git reset --hard d65fa2f
git push -f origin develop

注意:建议您在
强制
进行任何更改之前备份遥控器。此外,如果有人拉取了具有James更改的分支,则下次尝试拉取分支时可能会收到错误。

在我的情况下,我可能会这样做:

(01)重置上次提交的数量并将提交保持为暂存状态:

$ git reset --soft HEAD~<num_of_commit_from_HEAD>
$ git status
$ git log
$ git push -f origin <branch_name>
$ git reset --hard HEAD~<num_of_commit_from_HEAD>
$ git status
$ git log
$ git push -f origin <branch_name>

这里,,在您的情况下,是否将
HEAD
=
4
branch\u name
=
develope

倒带
HEAD
返回提交
D65FA2FAF06A5C4D8D379F963 feece2BF2EDEF98
强制
推送
原始开发
返回该状态?是否重写历史在您的工作流程中可用吗?如果是这样,
git reset--hard d65fa2f
,然后用
-f
推动它。再说一次,由于你的特定背景,它可能不在桌子上。@Romanvaleri-hehe,秒。我的想法完全正确。我只想回到布兰登的上次提交,而不是詹姆斯(我)不小心推了我的提交日志,如果这是可能的。现在它是在半夜这里,所以我的推是最新的承诺现在,所以我认为我是安全的回到布兰顿最后一个委员会。我仍然会得到我的改变我的地方?@ Joji我没有看到任何你的变化在<代码> Git日志< /代码>。答案将
强制
重置
origin develope
到Brandon的提交(覆盖
日志
)。您可以在当前工作目录之外的临时目录中执行此操作(即
cd/tmp/foo
git init.
git remote add origin…
git checkout-b develop
git pull origin develop
git reset--hard d65fa2f
git push-f origin develop
)。这样,您就可以确定它不会触及当前本地工作目录中的任何内容。我的更改是从a586cc1ff0c5abf535a4d0873c458a812dca28dd更改为1DCC0E8ADC5433A3A5B092EB813496AC52DE7AA43。我通过git reset得到了我的更改——硬d65fa2f然后是git diff 1dcc0e8adc5433a5b092e3b813496ac52de7aa43,它获取我的提交并将其放置到文件中。为了正确删除日志,我应该在执行您告诉我的操作之前创建一个新分支,还是直接在development branch中执行它而不从development branch创建新分支?