当前位置:  开发笔记 > 开发工具 > 正文

Github:重置为上一次提交

如何解决《Github:重置为上一次提交》经验,为你挑选了1个好方法。

小团队.一位同事origin:master误入歧途.他已经重置了他的本地仓库,但不能push -f到Github,因为回购受到保护.

我已经fetch编辑了回购,但没有将他的错误提交合并到我当地master......但是.

我怎么能,假设我可以push -f来源,重置originGithub,以便它反映出他错误之前的状态?

$ git push origin 2860a4c:master
To github.com:example/myproj.git
 ! [rejected]        2860a4c -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:example/myproj.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

git pull在我可以接受之前,我是否真的需要整合糟糕的提交(与),reset hard 2860a4c然后push -f origin呢?

我只是不想让事情变得更糟.



1> Moinuddin Qu..:

假设您有权限,git push -f以下是您可能采取的步骤.

在您的机器上,执行:

# Step 1: Take the changes from remote
git pull

# Step 2: Note the commit to which you want for restoring your repo to 
# using `git log`. Say the commit id is "x". 
git log

# Step 3: Do hard reset for that commit. 
#         ** NOTE ** All the changes after the commit "x" will be removed
git reset --hard x    # where x is the commit id

# Step 4: Push to remote
git push -f

然后collegue的机器上,做step 1step 3,然后做git pull合并远程修改


如果您没有权限git push -f,请执行以下操作:

git pull

git revert    # may get it via "git log"

git push

使用时git revert,将删除已还原提交的更改,但此提交将保留在提交历史记录中.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有