vivo面试学习3(git和svn的区别)
git和svn有什么区别?
svn:
系统特点:
1).集中式版本控制系统(存在一个中央版本库,所有开发人员所使用的代码都是来源于版本库,提交代码也是这个中央版本库)
2).企业内部并行集中开发
3).windows系统上开发推荐使用
4).克隆一个拥有一万个提交(commit)
5).五个分支,每个分支有大约1500个文件,用时将近一个小时
版本控制:
1)保存前后变化的差异数据,作为版本控制
2)版本控制,每次都会产生一个高版本(svn的全局版本号,这是svn一个较大的特点,git是hash值)
工作流程:
1)每次更改文件都得update操作,有的时候修改过程中这个文件有更新,commit不会成功
2)有冲突,会打断提交动作(冲突解析是一个提交速度的竞赛额竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决)
内存管理:svn读中文支持好,操作简单,适合于大众
git
系统特点:
1).分布式系统(也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,你仍然能够提交文件,查看历史版本记录,创建项 目分支等。)
2).开源项目开发
3).mac,Linux系统上开发推荐使用
4).克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件,用时1分钟
版本控制:
1.git只关心文件数据的整体发生变化,更像是把文件做快照,文件没有改变时,分支只想这个文件的指针不会改变,文件发生改变,指针指向新版本
2. 40 位长的哈希值作为版本号,没有先后之分
3.git rebase操作可以更好的保持提交记录的整洁
工作流程:
1.开始工作前进行fetch操作,完成开发工作后push操作,有冲突解决冲突
2.git的提交过程不会被打断,有冲突会标记冲突文件
3.gitflow流程(经典)
管理平台:
gitlab,github
ps:git的基本操作
本地:
1.git init初始化一个本地仓库
2.git add 文件名 (添加文件到仓库)
3.git commit -m "这里是注释"(将add的文件添加注释并且提交到代码仓库)
PS:Git操作区域 Git三个区域:工作区(开发修改代码区域)、暂存区(add提交后)、历史区(保存各个版本区域)(commit后)
4.git status查看当前仓库状态。会提示哪些文件发生修改,哪些需要add&commit
回退版本:git reset -hard HEAD~5(回退5个版本)
远程:(如果在远程生成了readme,在本地没有,要先pull一下)
git remote add (将本地仓库提交到远程仓库)
git push -u origin master(将本地master分支提交到远程的master分支,并关联起来)
git pull origin master(push前先将远程repository修改pull下来)
转载于:https://www.cnblogs.com/dazhidacheng/p/7478438.html