反向最后推送Github。

时间:2017-06-07 05:37:48

标签: git github push branch

我已推进错误的分支,我想推进新的分支,但我已推进rake db:create 分支。有没有办法反转上次提交的推送并获取最后一个代码并再次推送到新分支?

2 个答案:

答案 0 :(得分:6)

从本地master分支撤消软重置的上次提交,并在本地保留更改(在工作树中)。

$ 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

N.B:自更改远程主控的历史记录后需要强制推送。

替代:如果您没有强制推送权限或其他人拉出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

创建一个新分支并 cherry-pick 最后一次提交并推送到远程。

$ git checkout -b feature
$ git cherry-pick <last-commit-hash>
$ git push origin HEAD     

答案 1 :(得分:0)

git log 

这将为您提供所有提交的日志,然后git reset --hard "commit id" 这将重置为给定的头