开篇介绍
大家好,我是Java最全面试题库
的提裤姐,今天这篇是Java工具系列的第一篇,主要总结了Git和SVN相关的问题,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。
Git和SVN有什么区别?
- Git是分布式的,而SVN不是分布式的
- Git把内容按元数据方式存储,而SVN是按文件
- Git的内容的完整性要优于SVN
- SVN只能有一个指定中央版本库。而 Git可以有无限个版本库。
SVN优缺点?
优点:
- 管理方便,逻辑明确,符合一般人思维习惯。
- 易于管理,集中式服务器更能保证安全性。
- 代码一致性非常高。
- 适合开发人数不多的项目开发。
缺点:
- 服务器压力太大,数据库容量暴增。
- 如果不能连接到服务器上,就不能提交,还原,对比等等。
- 不适合开源开发。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
Git优缺点?
优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
缺点:
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
说一下Git创建分支的步骤?
Git branch test
创建test的branchGit checkout dev
切换到dev分支Git pull
远程分支拉到本地Git checkout -b main
创建并切换到main分支Git push origin main
推到远程分支
说一下Git合并的两种方法以及区别?
Git代码合并有两种:Git Merge
和 Git ReBase
Git Merge:
这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个commit,去push。
Git ReBase:
这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的commit,然后找出不同的去缓存,然后去push,修改commit历史。
Git如何查看文件的提交历史和分支的提交历史?
使用git log
命令
什么是 git stash?
用于临时保存和恢复修改,可跨分支。
使用场景:写着代码,写着写着,别人告诉我bug修好了,我就要去更新一下代码,如果更新冲突,应该把当前代码保存起来,此时可以使用git stash命令。
命令的本质帮我们做了两件事:
①把所有改动做了一个快照,然后保存起来,并还原原来的文件。
②在需要的时候,可以把之前的修改恢复。
什么是git stash drop
删除保存的存储。
git config 的作用?
配置或读取相应的环境变量。
这些环境变量,主要保存了 Git 在各个环节的具体工作方式和行为。
位置:
- 用户主目录的.gitconfig
- 工作目录的.git下面的.gitconfig
- /etc/.gitconfig