搜索

首页  >  问答  >  正文

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

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

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

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

为情所困为情所困2766 天前650

全部回复(4)我来回复

  • 大家讲道理

    大家讲道理2017-05-02 09:28:53

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

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:28:53

    git pull下来后,

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

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

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-02 09:28:53

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

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

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

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

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-02 09:28:53

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

    回复
    0
  • 取消回复