git/maven/集合类工具小记

本文用来记录工作学习中遇到的一些场景问题,并给出一些解决方案。(实时更新)

git

git是在工作中必须使用的工具,它很强大,但是在一些复杂的场景或者使用之下,它也会给我们带来巨大的困扰。

1.git remote

git remote可以用在本地存放一个remote列表,使用git remote add orgin url的形式可以添加相应的内容。之后在使用pull或者merge等命令时都可以通过+远程名+分支名进行方便操作。

2.git cherrypick

有这么一个场景:有两条分支从同一个节点分叉,上面进行了不同的内容修改,此时想把另一条分支内容拿过来不能直接使用merge(改动量较大,只想要另一条分支中的几条);这时可以使用cherrypick选择目标分支中想要的内容id进行合并。

3.版本回退与git reflog

在进行了一些错误改动提交时,git可以让我们进行版本回退。使用log查看提交id,再使用git reset --hard即可。但是这个操作都是基于同一个head(或者父head),如果你直接修改了head本身,那git log就找不到了。这时可以使用git reflog,理由如下:

git reflog根本不遍历HEAD的祖先。
它是HEAD所指向的一个顺序的提交列表:它的undo历史。
reflog并不是repo(仓库)的一部分,它单独存储,
而且不包含在pushes,fetches或者clones里面,
它纯属是本地的。
4.git rebase

以下纯属为本人想法,git rebase是变基操作,他可以将我们有许多分叉的git log变为一条清晰的直线。我觉得是这样的,比如有下面两个已经进行了merge/pull的改动:
在这里插入图片描述
其中f00是远程版本的另一个人提交的改动,582和887是我们本地做的改动,可见log中显示的顺序是代码修改的时间排序。但实际上f00是在之前提交的,这在我们的第一视角中是不好理解这个log的,此时可以使用git rebase,以提交的顺序来进行查看:
在这里插入图片描述
是不是很清楚。but 582和887不见了,这时我们版本回退也会一直受到f00的影响,因此有得有失。

5.git stash

git stash是存储本地修改的增量代码,可以在git pull有冲突时使用:git stash->git pull->git stash pop

maven

maven是一个常用的包管理工具,在工作中我们经常会用它来进行代码编译、deploy代码推送等操作。
maven涉及到本地和远程两个库概念,在做项目时,我们一般都会设置特定的settings文件来进行远程库的访问,这可以使我们顺利的进行compile(编译)、install(安装至本地库)等操作;之后我们再在pom文件中用distributionManagement标签放置指定的推送目标库(比如release/snapshot),之后就可以进行deploy推送了。

1.maven依赖树查看

mvn dependency:tree是一个用来查看各个项目依赖树的命令,当有多个子工程与父工程时这是个解决依赖冲突的好选择。

2.maven升代码版本

模块多?手动升容易漏?那么mvn version:set命令是个好选择。具体可以使用如下命令:

mvn version:set -DgenerateBackupPoms=false -DnewVersion=1.1.1-SNAPSHOT

其中第一个参数false是指不备份先前的版本文件,使用非常方便。

3.maven操作指定模块

模块很多,而且有些模块有错误,我们可以指定相应模块进行编译或者发布,命令如下:

mvn clean compile -am -pl 模块名称(可多个)

其中-am参数是指同时处理选定模块所依赖的模块,-pl参数是指指定相应模块进行操作。

4.maven排除parent 版本影响

主要两个方式:1.用< exclusions >标签进行指定包的排除 2.用最外层模块dependencyManagement标签中的dependency来进行包版本的管理。
这里推荐用第二种方式来进行排除版本影响。(在使用这个终极方法前,先替换父项目全局变量试一下)

集合类

1.不可操作集合Arrays.asList()

使用该方法转成的集合为不可操作集合,类似add/remove之类的集合操作都会报错;可以使用Lists.newArrayList()进行替代。(究其原因只是父类抛错了)
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值