现在平时用的都是SVN,感觉还是挺好用的。就是有的时候解决冲突的时候有点麻烦。但这样也是不可避免的。
今天看来下GIT,同样是版本控制,GIT的原理,和SVN还是不一样的。我个人的理解,SVN是对每个文件的前后版本进行比较。而GIT是对整体进行比较。
SVN每次提交都检查文件是否发生变化,如果变化,如果不冲突,则合并。如果冲突,则需要用户解决冲突。需要注意到是,SVN管理的版本,都集中在服务器上。而客户端并不能保证一定是最新的。
。
GIT的则是分布式的版本控制工具。每次更新的时候,都会将服务器上的最新版本都COPY到本地。这样即使服务器挂掉,也可以保证本地版本是最新的。
另外GIT在提交的时候,显示提交到本地,如果需要提交到服务器,可以再提交到后台。
GIT可以有不同的分支,各个分支之间都没有影响。比如有个分支是发布分支,这个分支上的代码是可以正确编译并运行的代码。如果在这个分支上修改的话,则可能会到时BUG,显然会影响到软件的发布。GIT可以使用 另外 一个分支,用户
可以创建一个DEVELOPE分支,将发布分支上的代码COPY过去,然后在DEVELOPE分支上修改,让后确认可以,再将合并到发布分支上。
在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库 中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。
图 1-6. 工作目录,暂存区域,以及本地仓库