1. 程式人生 > >git下commit和push的區別

git下commit和push的區別

最近在電腦上commit提交程式碼的時候提交成功,但是github上沒有顯示更改,在實驗室的電腦則一步成功。
後來瞭解到是因為自己電腦用的是git,而實驗室用的是svn控制。

svn是基於中心伺服器的集中式版本管理,只有中心伺服器的原始碼才是主線原始碼。所有C都是隻有中心原始碼的一部分副本,而且不能獨立成為一份完整副本。所以commit包含了將保存於C本地的本次版本記錄的程式碼副本傳送到中心伺服器和主線原始碼合併彙總。
git是基於本地檔案的分散式版本管理,沒有一個邏輯上的中心伺服器,但可以有一至多個業務上的用於主線程式碼彙總的中心伺服器。一來每個P就是可以成為一份完整的程式碼副本(這也是必須的,也和設計者的理念有關),其本地儲存操作就是一個完整的程式碼版本管理,所以commit只是對於原生代碼的版本記錄的本地儲存。而中央彙總是本地版本合併的衍生,而且因為每個P的邏輯地位是平等的,理論上只要公開程式碼庫的git入口就能向對方push自己的副本或者pull對方的副本過來。而業務上的邏輯彙總,也就是git的push操作,就是相對於SVN將C自己的本地部分副本傳送到中央伺服器S合併。
來自知乎陳肖恩的答案

https://www.zhihu.com/question/31043431/answer/61597279

總結:SVN,commit就能提交
Git,先commit到本地,再push到遠端。