Java面试八股--06-Linux篇
目录
一、Git
1、工作中git开发使用流程(命令版本描述)
2.Reset与Rebase,Pull与Fetch的区别
3、git merge和git rebase的区别
4、git如何解决代码冲突
5、项目开发时git分支情况
二、Linux
1、Linux常用的命令
2、如何查看测试项目的日志
3、如何查看最近1000行日志
4、Linux中如何查看某个端口是否被占用
这里再增加一个Git的操作吧!
一、Git
1、工作中git开发使用流程(命令版本描述)
开发一个新功能流程:(master线上分支,dev测试分支)
git clone 注释1
git checkout -b product 新建一个product 分支并且切换到product分支
git add ./ 提交开发需求到暂存区域
git push origin pengyu
git co test //切换到test分支
git merge pengyu //带你开发的业务代码合并到test分支
git push origin test //带你开发的业务代码推送到远端的test分支
2.Reset与Rebase,Pull与Fetch的区别
git reset 不修改commit相关的东西,只会去修改.git目录下的东西。
git rebase 会试图修改你已经commit的东西,比如覆盖commit的历史等,但是不能使用rebase来修改意见push过的内容,容易出现兼容性的问题。rebase还可以解决内容的冲突,解决两个修改了同一份内容,然后失败的问题。
git pull pull = fetch+merge,
使用git fetch是拉回远端更新,不会对本地执行merge操作,不会驱动你本地的内容。pull会更新你本地代码到服务器上对应的最新分支。
3、git merge和git rebase的区别
git merge把本地代码和已经取得远程仓库代码合并
git rebase是复位基底的意思,gitmerge会生成一个新的节点,之前的提交会分开显示,而rebase操作不会生成新的操作,将两个分支融合成一个线性的提交。
4、git如何解决代码冲突
第一种:
git stash
git pull
git stash pop
这个操作就是把自己修改的代码隐藏,然后把远程仓库的代码拉下来,然后把自己隐藏的修改的代码释放出来,让gie自动合并。
如果要代码库的文件完全覆盖本地版本。
git reset -hard
git pull
第二种:通过开发工具idea进行merge代码合并
5、项目开发时git分支情况
主干分支master:主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
开发分支develop:主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
bug修理分支hotfix:要负责管理生产环境下出现的紧急修复的代码。从猪肝分支分出,修改完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
发布版本分支release:较大的版本上线前,会从开发分支分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
功能分支feature:为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。开发完成过后会合并到开发分支。
二、Linux
1、Linux常用的命令
2、如何查看测试项目的日志
一般测试的项目里面,有个logs的目录文件,会存放在日志文件,有个xxx.out的文件,可以用tail -f动态实时查看后端的日志。
先cd到logs目录(里面有xx.out文件)
>tail -f xx.out
这时屏幕上会动态实时显示当前的日志,ctr+c停止
3、如何查看最近1000行日志
>tail -1000 xx.out
4、Linux中如何查看某个端口是否被占用
>netstat -anp | grep 端口号
图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了