【git】如果在push时其他人抢先一步push,那我是否需要将我本地提交全部回滚?

比防说
我在11点00分从服务器拉取了一次代码,然后与我本地的合并完并且提交了,在11点01分时准备push的时候,提示在我push之前已经有其他人抢险push了,我需要再pull一下才能提交,这时我是否需要将我本地的这一次commit回滚掉?

如果需要回滚我本地的commit该怎么回滚呢?

我现在的做法就是 git reset --hard commitid,这样貌似就把我提交的文件移出暂存区了?我这么做是否正确呢?是否还有其他做法呢?

阅读 6.9k
4 个回答

是不是应该再pull一次,
如果有冲突,就解决冲突之后再commit, push
如果没有冲突,直接commit,push

git pull下来后,

  1. 如果有冲突,解决完冲突再commit,然后push就好了;

  2. 如果没有冲突,直接就可以push

你从服务器 pull 之后实际上是将之前的抢险 push 合并到了你自己的本地版本之中,结果有两种:

  1. 自动合并成功 (fast-forward)

  2. 自动合并失败,需要手动 merge

两种情况下,你都应该重新跑一下 test ,确保合并后的代码没有影响你原来的功能和设想。然后再 push.

git fetch origin && git rebase origin/master && git push

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题