2015-09-10 54 views
3

从Git的documentation什么是Git中的快速推送?

默认情况下,配置标志receive.denyNonFastForwards是共享库启用 ,让你不能强迫非 快进推了进去。

我了解git push命令,但什么是快速转发推?

+0

http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html –

+0

谢谢@TobiaTesan –

+3

的可能重复[什么是“混帐推非快进更新被拒绝“的意思?](http://stackoverflow.com/questions/4684352/what-does-git-push-non-fast-forward-updates-were-rejected-mean) – IMSoP

回答

2

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

如果这段历史发生了变化,那么其他人可能会遇到问题,因为其他人已经完成了这段历史。

手动的方法来确定,如果你正在推动“快进”是看你有什么参考您下载了分支机构的远程副本(假设主):

git rev-parse origin/master #returns sha 

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

git fetch 
git rev-parse origin/master #returns sha 

如果这这两个REV-解析命令的返回结果是相等的推动将是快进。

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

git pull origin master 
# resolve any conflicts 
git push origin master 
+0

你的意思是:”拉你之前推“(最后一个例子之前的最后一句)。 – tne

+0

@tne谢谢,修正了错字 –