Git中的快速推送是什么?

7

来自Git 文档

共享代码库默认启用配置标志 receive.denyNonFastForwards,以便您无法将非快进式推送强制到其中。

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


http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html - Tobia Tesan
这个回答解决了你的问题吗?`git merge`和`git merge --no-ff`有什么不同? - Henke
标准化:*什么是 Git 快进?* - Peter Mortensen
1个回答

5
基本上,这意味着您不会重写已经存在于Git服务器上的提交历史记录(已推送的内容)。
如果此历史记录发生更改,则对已经拉取并使用该历史记录的其他人可能会造成问题。
手动确定是否在"快进"推送的方法是查看您下载的分支远程副本的引用(假设为主分支)。
git rev-parse origin/master # Returns SHA-1 hash value

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

git fetch
git rev-parse origin/master # Returns SHA-1 hash value

如果这两个rev-parse命令的返回结果相等,你的推送将是快进的。但是所有这些工作其实并不必要。只需在推送之前简单地拉取,就可以了。
git pull origin master

# Resolve any conflicts
git push origin master

1
你的意思是:“先拉再推”(在最后一个示例之前的最后一句话)。 - tne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接