Git 中的快进推送是什么?

And*_*man 6 git

从 Git文档

默认情况下,配置标志 receive.denyNonFastForwards 在共享存储库中启用,因此您不能强制非快进推送到其中。

我知道git push命令,但什么是快进推送?

Jon*_*ink 5

基本上这意味着你不会重写你的 Git 服务器上已经存在的提交历史(已经推送的东西)。

如果这段历史发生变化,那么对于那些已经完成并处理该历史的其他人来说,这可能是一个问题。

确定您是否正在推动“快进”的手动方法是查看您下载的分支机构远程副本(假设是 master)的参考:

git rev-parse origin/master #returns sha
Run Code Online (Sandbox Code Playgroud)

然后,从远程服务器下载内容并再次检查:

git fetch
git rev-parse origin/master #returns sha
Run Code Online (Sandbox Code Playgroud)

如果这两个 rev-parse 命令的返回结果相等,您的推送将是快进的。

但是......所有这些工作真的没有必要。只需在推动之前简单地拉动,你就会很好。

git pull origin master
# resolve any conflicts
git push origin master
Run Code Online (Sandbox Code Playgroud)