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

浏览:20日期:2023-10-05

问题描述

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

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

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

问题解答

回答1:

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

回答2:

git pull下来后,

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

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

回答3:

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

自动合并成功 (fast-forward)

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

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

回答4:

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

相关文章: