git下commit和push的区别

来源:互联网 发布:js图片识别 编辑:程序博客网 时间:2024/06/05 08:15

最近在电脑上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到远程。

原创粉丝点击