Git协同工作之——非快进式推送


非快进推送(non-fast-forwardupdates)在远程版本库和当前版本库内容不一致时推送所致,引起原因一般为在多成员协同工作下,其他用户在当前用户版本库上次commit和本次commit之间向远程版本库执行了推送所致。

出现非快进式推送的日志:

1

这是我们可以查看远程版本库和当前版本库的commit哈希值。

进入到.git目录下查看本地版本库最新commit信息:

2

查看远程版本库commit信息:

3

可以发现二者的不同,即出现了“非快进式推送”。

解决方式:

  1. 强制推送。

使用gitpush origin master --forcegitpush origin master -f

但是这种方式存在覆盖掉其他人提交的危险,当确定不会影响到其他人提交的情况下可以使用,比如使用gitcommit –amend修改提交日志等情况。

  1. 首先执行pull,继续Push,即合并后推送。这才是多成员协同工作推荐的方式。

gitpull

gitpush origin master

其它

当然,在团队协作管理中,也可以禁止非快进式推送,可以通过变量receive.denyNonFastForwards或是通过钩子脚本设置。

在Ubuntu Server上安装Git

服务器端Git仓库的创建(Ubuntu)

Linux下Git简单使用教程(以Android为例)

Git权威指南 PDF高清中文版

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

本文永久更新链接地址:

相关内容