git面试题
1.什么是git?为什么要使用git?集中化版本控制系统和分布式版本控制系统的区别。
2.列举工作中常用的git命令
初始化命令
git init
新增文件
git add filename 或者git add .
提交文件,生成版本
git commit -m
查看工作区状况
git status
详细当前分支详细的提交历史记录
git log --graph --pretty=format:"%h %s"记录简洁图形展示
查看所有分支简化的提交历史记录(回滚当前版本之后的版本)
git reflog
版本号 回滚版本
git reset --hard
3.git的分支命令
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
创建并切换分支
git checkout -b 分支名称
合并分支(可能产生冲突)
git merge 要合并的分支名称 (注意要先切换分支再合并)
删除分支
git branch -d 分支名称
4.git的远程仓库命令
添加远程连接(别名)
git remote add origin 地址
推送代码
git push origin dev
克隆远程仓库到本地
git clone 地址
拉取代码
git pull origin dev 等价于 git fetch origin dev + git merge origin/dev
修改远程仓库的地址
#直接修改配置里面的url即可 vim .git/config

5.git pull和git fetch的区别
6.代码出现bug,是如何解决的?
7.rebase(变基)命令和应用场景
8.git merge和git rebase的区别
git merge 操作合并分支会让两个分支的共同提交点之后每一次提交都按照提交时间(并不是push时间)排序,并且会将两个分支的最新一次commit点进行合并成一个新的commit,最终的分支树呈现非整条线性直线的形式
git rebase操作实际上是将当前执行rebase分支的所有基于原分支提交点之后的commit打散成一个一个的patch,并重新生成一个新的commit hash值,再次基于原分支目前最新的commit点上进行提交,并不根据两个分支上实际的每次提交的时间点排序,rebase完成后,切到基分支进行合并另一个分支时也不会生成一个新的commit点,可以保持整个分支树的完美线性
参考文章
9.如何做代码的review,谁来做代码的review
10.git分支的命名规范和提交记录规范
git分支的命名规范
git 分支分为集成分支、功能分支和修复分支,分别命名为 develop、feature 和 hotfix,均为单数。不可使用 features、future、hotfixes、hotfixs 等错误名称。
- 功能分支(featuer):它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后要再进入Develop。可以采用feature-的形式命名
- 预发布分支(release):指发布正式版本之前(合并到master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-的形式
- 修复bug分支(hotfix):当出现bug需要修复时,需要创建修复bug的分支从Master分支上分出来。修补结束以后再合并进Master和Develop分支。它的命名也可以采用hotfix-*的形式
注意事项:一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。feather分支在申请合并之前,最好是先pull一下develop主分支下来,看一下有没有冲突,如果有就先解决冲突后再申请合并。
提交记录规范
每个git commit记录需要按照固定格式
具体格式为:
第一行: 作者:功能模块名称(或功能模块id)
第二行:提交描述,中英文皆可
+:增加代码 *:修改代码 -:删除代码
11.github常用词含义
12.github高级搜索
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220442.html原文链接:https://javaforall.net
