首页 新闻 会员 周边 捐助

关于Git提交与svn的问题

0
悬赏园豆:50 [已解决问题] 解决于 2015-04-30 14:25

关于git的好处有很多不明白的地方 这只给了结果没说为什么这样 我想先问下 第二条 "svn随时都要跟 服务器交互" Git难道不用吗 推送的时候不也是要推到服务器吗 svn不也是下载代码到本地吗 跟git拉取到本地仓库有什么区别呢 刚接触git 希望回答问题的各位大哥大姐关照一下 认真回答 先谢过了

zklve的主页 zklve | 初学一级 | 园豆:157
提问于:2015-04-30 10:20
< >
分享
最佳答案
1

Git中没有中心服务器,每个Git都是服务器,pull/push只是进行服务器之间的同步。

收获园豆:25
dudu | 高人七级 |园豆:29568 | 2015-04-30 10:25
其他回答(2)
1

GIT管理的文件有四种状态:变更 -> 临时提交(该状态下,可直接撤销) -> 提交到本地(该状态下,可以用git reset重置) ->推送到服务器 (服务端状态,无法变更)

对于svn来说,文件只有两种状态:变更 ->推送到服务器。

那么,当服务端不可用时,git正常工作,svn就洗白了。

另外,git是基于内容的版本管理,所以分支和合并都非常容易;svn是基于文件的版本管理,相对来说切分支于合并,都非常麻烦。

 

另外:推荐一个git的客户端:SourceTree。

再另外,几个git的术语:

fetch:从远程服务器查看更新,不拉取

pull:从远程服务器拉取更新

commit:提交变更代码到本地

push:推送本地的commit到远程服务端

收获园豆:20
幻天芒 | 园豆:37207 (高人七级) | 2015-04-30 10:32

恩恩 加上1l跟你的 理解个差不多了 灰常感谢!

支持(0) 反对(0) zklve | 园豆:157 (初学一级) | 2015-04-30 10:36

为什么我觉得你说的是反的呢。

git才是基于文件的版本管理吧,svn是基于内容的。

git每次commit保存的是文件快照,而svn每次保存的是文件的变化内容。

因此,在进行分支的切换的时候,svn是逐个的拉取文件的变化,慢慢累加起来。而git是直接取出指定commit的文件快照

支持(0) 反对(0) ChuckLu | 园豆:514 (小虾三级) | 2015-04-30 18:06

推荐你看下git详解之一。这是一个系列文章的第一篇

支持(0) 反对(0) ChuckLu | 园豆:514 (小虾三级) | 2015-04-30 18:07

@ChuckLu: 你的对的,Git 只关心文件数据的整体是否发生变化。

@zklve  :给你造成了一定的误导。想更细致的了解git,可以参考:http://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-Git-%E5%9F%BA%E7%A1%80

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-04-30 23:19
0

好处

1.再也不怕合并代码的时候把自己没提交的代码弄丢了.

2.1还不够吗?

收获园豆:5
吴瑞祥 | 园豆:29449 (高人七级) | 2015-04-30 12:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册