2015-09-10 72 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謝謝,修正了錯字 –