1 Star 0 Fork 31

np / Ebooks

forked from Java精选 / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
常见关于项目管理工具面试题附答案,2021年经典版.md 8.08 KB
一键复制 编辑 原始数据 按行查看 历史

常见关于项目管理工具面试题附答案,2021年经典版

全部面试题答案,更新日期:12月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

项目管理工具

题1:Git 提交失误时如何撤销?

如果撤销提交到索引区的文件,可以使用git reset HEAD file命令。

如果撤销提交到本地仓库的文件:

可以使用git reset –soft HEAD^n恢复当前分支的版本库至上一次提交的状态,索引区和工作空间不变更;

可以使用git reset –mixed HEAD^n恢复当前分支的版本库和索引区至上一次提交的状态,工作区不变更;

可以使用git reset –hard HEAD^n恢复当前分支的版本库、索引区和工作空间至上一次提交的状态。

题2:Git 提交时冲突,是什么原因所致,如何解决?

开发过程中经常碰到一些冲突问题,比如同时修改公共类的公共方法,一人提交后,另外一人再提交就会报冲突的错误。

发生冲突,在IDE里面一般都是对比本地文件和远程分支的文件,然后把远程分支上文件的内容手工修改到本地文件,然后再提交冲突的文件使其保证与远程分支的文件一致,这样才会消除冲突,然后再提交其修改的部分。

注意的是修改本地冲突文件与远程仓库的文件保持一致后,需要提交后才能消除冲突,否则无法继续提交。必要时可与其他提交人员交流沟通,消除冲突。

发生冲突,也可以使用命令。

1)使用git stash命令,把工作区的修改提交到栈区,目的是保存工作区的修改;

2)使用git pull命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;

3)使用git stash pop命令,把保存在栈区的修改部分合并到最新的工作空间中。

题3:Git 中什么是“裸存储库”?

Git中的 “裸” 存储库只包含版本控制信息而没有工作文件(没有工作树),并且它不包含特殊的.git子目录。相反,它直接在主目录本身包含.git子目录中的所有内容,其中工作目录包括:

1)一个.git子目录,其中包含你的仓库所有相关的Git修订历史记录。

2)工作树,或签出的项目文件的副本。

题4:Git 中提交项目文件命令是什么?

提交项目文件命令

git commit -a

含义:-a参数是指通过在命令行上加-a指示git提交已修改的所有被跟踪文件的新内容。

注意的是如果第一次提交新文件,可以在执行git commit -a命令之前先执行git add 命令。

题5:Git 和 SVN 有什么区别?

Git是一个分布式的版本控制工具;而SVN是集中版本控制工具;

Git属于第3代版本控制工具;而SVN属于第2代版本控制工具;

Git客户端可以在其本地系统上克隆整个存储库;而SVN版本历史记录存储在服务器端存储库中;

Git支持离线提交;而SVN必须在线提交;

Git中Push/pull命令操作更快;而SVN中Push/pull命令操作较慢;

Git工程可以用commit命令实现自动共享;而SVN不支持自动共享。

题6: 什么是 Git?

Git是目前主流的一种代码托管技术。基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是通过Git来实现的。

Git可以对代码进行版本控制以及分支管理等。它里面主要包含远程仓库,克隆,本地仓库,分支,提交,拉取等概念。其中远程仓库是指我们代码存储在服务器的地方,并且整个团队中所有人都可以正常访问。

克隆则是指从远程仓库克隆到本地的过程。本地仓库指的是开发人员从远程仓库克隆一份代码之后,保存在本地的代码,但是这个代码只有克隆的代码的开发人员可以看到。

题7: 列举工作中常用的几个 Git 命令?

新增文件的命令:git add file或者git add

提交文件的命令:git commit –m或者git commit –a

查看工作区状况:git status –s

拉取合并远程分支的操作:git fetch/git merge或者git pull

查看提交记录命令:git reflog

题8:什么是 Maven 插件?

Maven生命周期的每一个阶段的具体实现都是由Maven插件实现的。插件通常提供了一个目标的集合,并且可以使用下面的语法执行:

mvn [plugin-name]:[goal-name]

Maven提供了两种类型的插件:

1)Build plugins:在构建时执行,并在pom.xml的元素中配置。

2)Reporting plugins:在网站生成过程中执行,并在pom.xml的元素中配置。

一些常用插件列表:

clean:构建之后清理目标文件。删除目标目录。

compiler:编译Java源文件。

surefile:运行JUnit单元测试。创建测试报告。

jar:从当前工程中构建JAR文件。

war:从当前工程中构建WAR文件。

javadoc:为工程生成Javadoc。

antrun:从构建过程的任意一个阶段中运行一个ant任务的集合。

题9:Maven 中如何解决 jar 包冲突?

第一步,查找Maven加载的时候是什么版本的jar包,通过使用“mvn dependency:tree”命令查看依赖树,或者使用IDEA Maven Helper插件。

第二步,通过Maven的依赖原则来调整坐标在pom文件的申明顺序或者使用将冲突中不想要的jar引入的jar进行<exclusions>去除掉。

项目中引入另一个maven项目依赖,通过依赖传递,会将jar包传递进来,如果不需要某个jar包就可以使用如下配置:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring.version}</version>
  <exclusions>
    <exclusion>
      <artifactId>commons-logging</artifactId>
      <groupId>commons-logging</groupId>
    </exclusion>
  </exclusions>
</dependency>

题10:Maven 中依赖的解析机制是什么?

解析发布(RELEASE)版本:如果本地有,直接使用本地的,没有的话就会向远程仓库请求。

解析快照(SNAPSHOT)版本:合并本地和远程仓库的元数据文件groupId/artifactId/version/maven-metadata.xml ,这个文件存的版本都是带时间戳的,将最新的一个改名为不带时间戳的格式供本次编译使用。

解析版本为LATEST过于复杂,且解析的结果不稳定,不推荐在项目中使用,感兴趣的同学自己去研究,简而言之就是合并groupId/artifactId/maven-metadata.xml 找到对应的最新版本和包含快照的最新版本。

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/huangdx.net/ebooks.git
git@gitee.com:huangdx.net/ebooks.git
huangdx.net
ebooks
Ebooks
master

搜索帮助