我推错了分支,我想推新的分支,但我推的是master
分支。有没有办法逆转上一次提交的推送,并获得最后的代码,并再次推送到新的分支?
发布于 2017-06-07 05:57:14
从本地master
分支撤消soft reset的上一次提交,并将更改保留在本地(在工作树中)。
$ git checkout master
$ git reset --soft HEAD~1
$ git log # make sure the last commit is reverted successfully as you expect.
签出到一个新的分支机构(比如feature
)。添加、提交、推送到远程分支(此处为feature
)。
$ git checkout -b feature # checkout new branch with the local changes
$ git status # see the changed files
$ git add .
$ git commit -m 'message'
$ git push origin HEAD
返回到本地master
并执行强制推送以更新远程主机(删除远程主机的最后一次提交)
$ git checkout master
$ git push -f origin HEAD
注意:由于更改了远程主机的历史记录,因此需要强制推送。
Alternate:如果您没有强制推送权限,或者其他人拉出了origin/master
,并且已经获得了最后一次提交,则为。那么你最好恢复最后一次提交,而不是重置(历史更改)。
$ git checkout master
$ git log # copy the last-commi-hash
$ git revert <last-commit-hash>
$ git push origin HEAD # note, no force push is needed
创建一个新的分支,然后选择最后一次提交并推送到。
$ git checkout -b feature
$ git cherry-pick <last-commit-hash>
$ git push origin HEAD
发布于 2017-06-07 05:44:31
git log
这将为您提供所有提交的日志,然后git reset --hard "commit id"
将重置为给定头
https://stackoverflow.com/questions/44404321
复制