add maven

pull/1/head
wanglei 2020-08-02 18:05:45 +08:00
parent 221ffda42a
commit d412b4da2f
6 changed files with 231 additions and 0 deletions

View File

@ -0,0 +1,35 @@
在本地开发好了一个分支想要merge到master上怎么操作呢手把手教你操作。
## 1.本地拉一个分支出来
```
git checkout -b xxx
```
## 2.开发完以后提交到远程分支
```
git add .
git commit -m "commit xxx"
git push -u origin xxx
```
## 3.返回master
```
git checkout master
```
## 4.把本地的分支合并到master
```
git mrege xxx
```
## 5.把本地的master同步到远程
```
git push origin master
```
## 6.如果不需要本地或者远程的xxx分支了你可以选择删除。

View File

@ -0,0 +1,33 @@
项开发过程中有时会需要将代码回滚至上一次提交或回滚到某一次提交。项目新版本上经后如果不能正常运行或遇到其它极端问题时我们需要将代码回滚至上一个版本。通过git revert命令可以实现代码的提交回滚。
## 1.git revert命令介绍
git revert作用是回滚已经存在提交。
git revert回滚本质是用某次commit时的代码再做一次commit提交所以git revert不会对已经提交的代码产生影响。 下面是三种常用的回滚方式:
```
git revert commit-id // 回滚至某个commit版本
git revert HEAD // 回滚至上一次的 commit
git revert HEAD^ // 回滚至上上次的commit
```
## 2.使用git revert回滚代码至上一个版本
使用git revert回滚代码关键点在于到找到要回滚版本commit时的提交标识。
如果使用Git标签进行版本管理可以使用git show 标签名命令来查找指定版本最后一次commit提交信息。例如在发布v1.0版时添加了一个名为v1.0的标签现在想回滚至v1.0,可以使用以下命令查看提交标识:
```
git show tag v1.0
```
如果没有使用git 标签进行版本管理或者要回滚的目标代码不是某个发布版本那么就需要通过git log查看提交日志并通提交时的描述信息确认提交标识。
```
git log
```
通上面介绍的方法现在找了v1.0版本的提交标识为afc4408db31cd537cef669f0f8e40acf079ea8a0回滚至v1.0代码如下:
```
git revert afc4408db31cd537cef669f0f8e40acf079ea8a0
```

View File

@ -0,0 +1,52 @@
git上面的分支开发完成以后完成了他的历史使命就可以删除了。
## 1.删除本地分支
查看本地分支
```
git branch
add_jvm_config_and_exception_log
hdfs_config_in_zk
* master
subBucket
```
删除已经merge的本地分支
```
git branch -d add_jvm_config_and_exception_log
已删除分支 add_jvm_config_and_exception_log曾为 4b0bd09
```
如果是要删除不管有没有merge的本地分支
```
git branch -D xxx
```
## 2.删除远程分支
查看远程分支
```
git branch -r
origin/add_jvm_config_and_exception_log
origin/hdfs_config_in_zk
origin/master
origin/subBucket
```
删除远程分支
```
git push --delete origin add_jvm_config_and_exception_log
To git@xxx
- [deleted] add_jvm_config_and_exception_log
```
也可以用如下命令
```
git push origin :xxx
```
xxx表示分支名称

View File

@ -0,0 +1,25 @@
项目开发初期由于.gitignore 文件配置不正确很有可能导致某些不需要的目录上传到 git 远程仓库上了,这样会导致每个开发者提交的时候这些文件每次都会不同。当然最稳妥的方案是一开始就配置好.gitignore但是如果这种情况发生了该怎么办呢
## 1.删除远程库文件,但本地保留该文件
```
git rm --cached xxx
git commit -m "remove file from remote"
git push -u origin master
```
## 2.删除远程库文件夹,但本地保留该文件夹
```
git rm --cached -r xxx
git commit -m "remove file from remote"
git push -u origin master
```
加上参数-r递归删除该文件夹。
## 3.git rm与git rm --cached 的区别
git rm 是删除暂存区或分支上的文件, 同时也删除工作区中这个文件。
git rm --cached是删除暂存区或分支上的文件,但本地还保留这个文件, 是不希望这个文件被版本控制。

View File

@ -0,0 +1,31 @@
本地已经有了现成的项目需要将此项目push到远端gitlab的服务器上。具体操作步骤如下
## 1.在gitlab上创建好对应的project
首先我们现在gitlab服务器上创建git@xxx.xxx.xxx:xxx/xxx.git项目xxx.git是具体的项目名称。
## 2.初始化本地项目
cd到本地项目目录然后执行
```
git init
```
这样就初始化了本地git仓库
## 3.关联远程仓库
```
git remote add origin git@xxx.xxx.xxx:xxx/xxx.git
```
## 4.提交代码
```
git add .
git commit -m "init project"
git push -u origin master
```
## 5.注意事项
使用`git add .`的时候经常会将一些不必要的内容带进去。这个时候需要将不必要的内容撤销。由于此时还没有提交所以不存在HEAD版本不能使用 git reset HEAD命令。
此时,可以使用`git rm -r --cached .`撤销之前的add内容。

View File

@ -0,0 +1,55 @@
用maven中的命令行方式可以新建一个maven项目。命令行如下
```
mvn archetype:generate \
-DgroupId=edu.bit.auto \
-DartifactId=test \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
```
当然执行上面命令的时候需要将mvn加入到PATH中。
将命令行执行后,一直卡在如下界面中:
![这里写图片描述](https://github.com/bitcarmanlee/easy-algorithm-interview-photo/blob/master/tools/maven/1.png)
显示出来一直在`Generating project in Batch mode`
为了看清楚到底是发生了什么,加上-X选项看看log最靠谱的还是log大法
![这里写图片描述](https://github.com/bitcarmanlee/easy-algorithm-interview-photo/blob/master/tools/maven/2.png)
原来一直是在maven的中央仓库里找archetype-catalog.xml。你懂的。
那怎么绕过去这个坑呢?
解决方案也比较容易。先看自己的maven本地仓库里有没有archetype-catalog.xml。默认的位置为`~/.m2/repository/org/apache/maven/archetype/archetype-catalog`。可能下面还有一层版本信息的路径然后cd进去看看有没有`archetype-catalog-2.4.pom` 文件(我的版本是2.4)。如果没有下载对应的archetype-catalog.xml让如相应的位置。然后在命令行后面加上一个选项`-DarchetypeCatalog=local`。最后执行相应的命令行即可。
命令执行完毕以后用tree命令看看生成的内容
![这里写图片描述](https://github.com/bitcarmanlee/easy-algorithm-interview-photo/blob/master/tools/maven/3.png)
可以看到跟我们在IDE里生成的项目结构是一样的都会自动生成一个App.java与AppTest.java的类
再进去看看pom的内容
```
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.bit.auto</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>test</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
```
这样一来通过命令行的方式自动生成maven项目减少了pom.xml以及项目本身结构出错的可能