在实际使用git的过程中,难免会存在手误的场景,比如 git commit之后,发现提交的描述信息不太合适,想调整一下;或者发现本地有多个零碎未提交的commit,想合并成一个提交…
当我们出现这些需求场景的时候,可以考虑使用git commit --amend
来实现
在实际使用git的过程中,难免会存在手误的场景,比如 git commit之后,发现提交的描述信息不太合适,想调整一下;或者发现本地有多个零碎未提交的commit,想合并成一个提交…
当我们出现这些需求场景的时候,可以考虑使用git commit --amend
来实现
不同操作系统下的换行不一致,当一个项目的开发者分别再linux/mac/win下做了代码提交改动之后,使用git diff
命令时,可能会发现,即便啥也没改,当时有很多变动,显示^M
的差别
主要原因就是换行的问题
解决这个问题的一个办法就是统一换行
1 | git config --global core.autocrlf true |
统计项目某个某个时间段的行数
1 | git log --author="$(git config --get user.name)" --before='2018-12-31 23:59:59' --after='2018-01-01 00:00:00' --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' |
背景:
实际开发过程中,经常可能遇到的一个问题,当你在dev分支上正开发得happy的时候;突然来了个线上bug,得赶紧从release分支上切一个bugfix分支来解决线上问题,这个时候,正在开发的东西,就得暂存了
之前对于Git只是简单的了解了下,只处于入门的会用级别,遇到上面这个问题,采取的是一个比较笨的方案:
1 | # 1. 将当前改动保存,并提交一个tmp commit |
在Github上也写了不少的项目了,然后经常遇到的一个问题就是,很多自己写的项目,希望在另外一个项目中使用时,只能把这个项目下载下来,相当之不方便
因为大多数的java后端项目都是基于maven管理依赖的,所以就希望能有一个公共的maven仓库,可以把自己的项目扔进去,然后再应用就方便很多了
基于此,就有了本文这个教程了
新建一个repository的前提是有github帐号,默认看到本文的是有帐号的
首先是在github上新建一个仓库,命令随意,如我新建项目为
本地指定一个目录,新建文件夹 maven-repository
, 如我的本地配置如下
1 | ## 进入目录 |
这个目录结构为什么是这样的?
我们直接看maven配置中默认的目录结构,同样拷贝一份出来而已
将本地的仓库和远程的github仓库关联起来,执行的命令也比较简单了
1 | git add . |
接着就是进行分支管理了
所以需要新创建两个分支
1 | ## 创建snapshot分支 |
项目的deploy,就需要主动的指定一下deploy的地址了,所以我们的deploy命令如下
1 | ## deploy项目到本地仓库 |
上面的命令就比较常见了,主要需要注意的是file后面的参数,根据自己前面设置的本地仓库目录来进行替换
每次进行上面一大串的命令,不太好记,特别是不同的版本deploy到不同的分支上,主动去切换分支并上传,也挺麻烦,所以就有必要写一个deploy的脚本了
由于shell实在是不太会写,所以下面的脚本只能以凑合能用来说了
1 | #!/bin/bash |
将上面的脚本,考本到项目的根目录下,然后执行
1 | chmod +x deploy.sh |
基于此,整个步骤完成
上面仓库的基本搭建算是ok了,然后就是使用了,maven的pom文件应该怎么配置呢?
首先是添加仓库地址
添加仓库
如果要区分snapshot和release的话,如下配置
1 | <repositories> |
如果不care的话,直接添加下面的即可
1 | <repositories> |
仓库配置完毕之后,直接引入依赖即可,如依赖我的Quick-Alarm包,就可以添加下面的依赖配置
1 | <dependency> |
基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正,我的微博地址: 小灰灰Blog
Update your browser to view this website correctly. Update my browser now