git 命令及客户端的详细使用

Dev

git教程:廖雪峰的git教程git教程

Git与SVN的区别

  • git是分布式版本控制系统,SVN是集中式版本控制系统。详见: 集中式vs分布式
  • git把内容按元数据方式存储,而SVN是按文件。
  • git版本库可以离线查看所有log,可以离线提交,而SVN不可以。
  • ……更多区别详见: Svn与Git的区别

操作流程

SVN

  1. update(将远程版本库代码更新到本地)
  2. commit(将本地代码提交到远程版本库)

git

  1. commit(将本地代码提交到远程版本库)
  2. fetch(将远程版本库的改动下载到本地(未合并))
  3. merge(合并两个分支(本地、远程))
  4. push(将最新的版本库同步到远程服务器)

显而易见:SVN的操作简单明了,git学习成本比SVN高一点。但是由于git是分布式的,所以不需要联网就可以将代码改动立即提交。提交到本地版本库之后,本地和远程的版本就不一样了,因此需要fetch、merge、push来同步版本库。

那么这点区别有什么意义呢?将代码提交到版本库里就有了记录,就可以查询可以恢复,相当于游戏的存档,而与远程服务器的交互因为需要网络,就有很大的不稳定因素,可能会失败,相当于游戏的打BOSS。SVN是将存档和打BOSS绑定到了一起,要打了BOSS后才可以存档进度;而git由于版本库在本地,所以随时随地可以存档,并且要求打BOSS前必须存档。

使用git最大的感触就是安全(故障率低、易恢复)、速度快