Git安装部署
[root@master ~]# yum install git -y
[root@master ~]# git config
usage: git config [options]
Config file location
--global use global config file
--system use system config file
--local use repository config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
[root@master ~]# git config --global user.name 'vampire'
[root@master ~]# git config --global user.email '2733885168@qq.com'
[root@master ~]# git config --global color.ui true # 语法高亮
# 配置用户
[root@master ~]# git config --list
user.name=vampire
user.email=2733885168@qq.com
color.ui=true
[root@master ~]# cat .gitconfig
[user]
name = vampire
email = 2733885168@qq.com
[color]
ui = true
git初始化
初始化工作目录、对已经处在的目录进行初始化
[root@master ~]# mkdir data
[root@master data]# git init # 初始化仓库(可以时空目录)
Initialized empty Git repository in /root/data/.git/
# 查看工作区的状态
[root@master data]# git status
# On branch master # 分支 主
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
隐藏文件
branches : 分支目录
config: 定义项目特有的配置选项
description: 仅供git web程序使用
HEAD: 指示当前的分支
hooks: 包含git钩子文件
info: 包含一个全局排除文件(exclude文件)
objects: 存放所有数据内容,有info和pack两个子文件夹
refs: 存放指向数据(分支)的提交对象的指针
index: 保存暂存区信息,在执行git init的时候,这个文件还没有
[root@master data]# tree .git
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
git操作
git add files # 添加文件到暂存区
git add . 或者git add * 添加当前所有文件到
[root@master data]# git add .
[root@master data]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
# new file: b
# new file: c
1.# 暂存区撤回
[root@master data]# git rm --cached c
rm 'c
删除文件 撤出暂存区,删除文件
2. 直接从暂存区同工作目录一同删除文件命令
[root@master data]# git rm -f b
通过版本控制系统 管理文件
>1.工作目录必须有代码文件
>2.通过git add file 添加文件到暂存区域
>3.通过git commit -m "输入信息" 添加本地仓库
commit是将暂存区的文件放到本地仓库
[root@master data]# git commit -m "add newfile a"
[master (root-commit) f5a29a0] add newfile a
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
改名
mv a a.txt
git status
git rm --cached a
git status
git add a.txt
git status
git commit -m "modified a "
直接改名
[root@master data]# git mv a.txt a
You have new mail in /var/spool/mail/root
[root@master data]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: a.txt -> a
[root@master data]# git commit -m "modified a.txt"
[master 51f6655] modified a.txt
1 file changed, 0 insertions(+), 0 deletions(-)
rename a.txt => a (100%)
git 文件比对
# git diff 默认比对工作目录和暂存区有何不同
[root@master data]# git diff
比对暂存区和本地仓库
[root@master data]# git diff --cached
如果某个文件已经被仓库管理,如果在更改此文件 直接需要一条命令即可
git commit -am "add newfile"
git commit # 相当于虚拟机的镜像、任何操作都被做了一次快照,可恢复到任意一个位置
git log
一行简单的显示commit信息
[root@master data]# git log --oneline
1b16520 add index
51f6655 modified a.txt
21b29cf modified a
f5a29a0 add newfile a
[root@master data]# git log -p #显示具体内容的变化
[root@master data]# git log -1 #只显示1条内容
回滚数据到某一个提交
[root@master data]# git log --oneline
1b16520 add index
51f6655 modified a.txt
21b29cf modified a
f5a29a0 add newfile a
You have new mail in /var/spool/mail/root
[root@master data]# git reset --hard f5a29a0
HEAD is now at f5a29a0 add newfile a
[root@master data]# git reflog
查看当前指针指向
[root@master data]# git log --oneline --decorate
1b16520 (HEAD, master) add index
51f6655 modified a.txt
21b29cf modified a
f5a29a0 add newfile a
创建一个testing分支
[root@master data]# git branch testing
You have new mail in /var/spool/mail/root
查看当前分支
[root@master data]# git branch
* master
testing
切换到testing分支
[root@master data]# git checkout testing
Switched to branch 'testing'
创建一个分支并切换
[root@master data]# git checkout -b testing
history 分支不会影响主干
touch aaa bbb ccc
git add aaa
git commit -m "add aaa"
git add bbb
git commit -m "add bbb"
git add ccc
git commit -m "add ccc"
git tsatus
git status
git branch -d testing
git branch
git checkout -b testing
ll
git log --oneline --decorate
touch test-ddd
git add .
git commit -m "add test-ddd"
git log --oneline --decorate
代码合并
git merge testing (当前在主分支)
master分支
touch aaa
echo 123>aaa
git add aaa
git commit -m "add aaa"
git checkout -b testing
touch aaa
echo 456>aaa
git add aaa
git commit -m "add aaa"
git checkout master
git merge testing
冲突
解决 vi aaa
保留什么代码 ,,重新提交
git commit -am "modified aaa"
git标签使用
标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串。
[root@master data]# git log --oneline
1b16520 add index
-a: 指定标签的名字
[root@master data]# git tag -a v1.0 1b16520 -m "tag v1.0 add index"
git show 查看具体标签的信息
[root@master data]# git show v1.0
tag v1.0
Tagger: vampire <2733885168@qq.com>
Date: Fri Aug 6 00:15:41 2021 -0400
tag v1.0 add index
commit 1b16520864c9a51f8b74143c2f8f412cd9daf329
Author: vampire <2733885168@qq.com>
Date: Thu Aug 5 21:24:56 2021 -0400
add index
diff --git a/a b/a
index e69de29..9015a7a 100644
--- a/a
+++ b/a
@@ -0,0 +1 @@
+index
[root@master data]# git reset --hard v1.0
HEAD is now at 1b16520 add index
[root@master data]# git tag
v1.0
v2.0
删除
git tag -d v1.0
github使用
Github顾名思义是一个Git版本库的托管服务,是目前全球最大的软件仓库,拥有上百万的开发者用户,也是软件开发和寻找资源的最佳途径,Github不仅可以托管各种Git版本仓库,还拥有了更美观的web界面,您的代码文件可以被任何人克隆,使得开发者为开源项贡献代码变得更加容易,当然也可以付费购买私有库,这样高性价比的私有库真的是帮助到了很多团队和企业
- 注册用户
- 配置ssh-key
- 创建项目
- 克隆项目到本地
- 推送新代码到github
添加远程仓库
[root@master data]# git remote add origin https://github.com/Healer20/learn.git
[root@master data]# git remote
origin
将本地分支代码推送到github
[root@master data]# git push -u origin master
Username for 'https://github.com': Healer20
Password for 'https://Healer20@github.com':
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (15/15), 1.18 KiB | 0 bytes/s, done.
Total 15 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), done.
To https://github.com/Healer20/learn.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
clone远程仓库的代码
[root@master tmp]# git clone git@git.zhlh6.cn:Healer20/learn.git
# history
14 sudo yum install -y curl policycoreutils-python openssh-server perl
15 sudo systemctl enable sshd
16 sudo systemctl start sshd
17 sudo firewall-cmd --permanent --add-service=http
18 sudo firewall-cmd --permanent --add-service=https
19 sudo systemctl reload firewalld
20 sudo yum install postfix
21 sudo systemctl enable postfix
22 sudo systemctl start postfix
23 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
24 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
25 sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce
26 cd /etc/gitlab/
27 ls
28 vi gitlab.rb
29 gitlab-ctl reconfigure
30 cat /etc/gitlab/initial_root_password
创建项目
>Git global setup
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
Create a new repository
git clone git@192.168.200.66:test/git_data.git
cd git_data
git switch -c main
touch README.md
git add README.md
git commit -m "add README"
git push -u origin main
Push an existing folder
cd existing_folder
git init --initial-branch=main
git remote add origin git@192.168.200.66:test/git_data.git
git add .
git commit -m "Initial commit"
git push -u origin main
>Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@192.168.200.66:test/git_data.git
git push -u origin --all
git push -u origin --tags
Add_ssh KEYS
[root@master data]# git config --global user.name "kang"
[root@master data]# git config --global user.email "2733885168@qq.com"
删掉原来的origin
git remote remove origin
添加远程仓库
[root@master data]# git remote add origin git@192.168.200.66:test/git_data.git
[root@master data]# git remote
origin
将本地仓库的项目代码推送到gitlab
[root@master data]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 198 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.200.66:test/git_data.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
(touch aaa
echo kang > aaa
git add .
git commit -m "echo")
web界面操作
Maven-nexus私服配置
Maven是一个项目管理和综合工具。Maven提供给开发人员构建一个完整的生命周期框架。开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期。Apache的开源项目主要服务于JAVA平台的构建、依赖管理、项目管理。
Project 0bject Model,项目对象模型。通过xml格式保存的pom .xml文件。该文件用于管理∶源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。该文件是由开发维护,我们运维人员可以不用去关心。
下载maven
清华源: https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/
解包
[root@node ~]# tar -xf apache-maven-3.3.9-bin.tar.gz
[root@node ~]# mv apache-maven-3.3.9 /usr/local/
软连接
[root@node ~]# cd /usr/local/
[root@node local]# ln -s apache-maven-3.3.9/ maven
加环境变量
# vi /etc/profile
export PATH=/usr/local/maven/bin/:$PATH
# source /etc/profile
安装mvn之前 需要安装java环境
[root@node ~]# yum install java-1.8.0 java-1.8.0-devel -y
测试
进入代码项目 打包
mvn package
常用命令:
maven -v # 查看版本号
validate(验证): 验证项目是否正确,并且所有必要信息可用。
compile(编译): 编译项目代码
test:(测试): 使用合适的单元测试框架测试编译后的源码。
package(打包): 源码编译之后,使用合适的格式(例如jar格式)对编译的源码进行打包
integration-test: 集成测试: 如果有需要,把包处理并部署到可以运行集成测试的环境中去。
verify(验证): 进行各种测试来验证包是否有效并且符合质量标准。
install(安装)︰ 把包安装到本地仓库,使该包可以作为其他本地项目的依赖。
deploy(部署)︰在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。
mvn clean(清除)︰清除上次编译的结果
mvn package
#会去maven的中央仓库去下载需要的依赖包和插件到.m2目录下
创建maven-nexus私服
#####
阿里云
[root@node conf]# cp settings.xml{,.bak}
[root@node conf]# vi settings.xml
159 <mirror>
160 <id>aliyunmaven</id>
161 <mirrorOf>*</mirrorOf>
162 <name>阿里云公共仓库</name>
163 <url>https://maven.aliyun.com/repository/public</url>
164 </mirror>
部署私服nexus
1.上传解包
2.移动到/usr/local
# mv nexus-3.13.0-01 /usr/local
软连接
# ln -s nexus-3.13.0-01/ nexus
# cd nexus
3.进入bin目录
./nexus start
./nexus status
访问 : ip:8081
admin
admin123
去maven配置
/usr/local/maven/conf
修改 setting.xml
在servers标签中添加
<server>
<id>my-nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
在mirrors标签中添加
<mirror>
<!--This seds everying else to /public-->
<id>nexus</id>
<mirrosOf>*</mirrorOf>
<url>http://192.168.200.88:8081/nexus/centos/groups/public/</url>
</mirror>
找到<profiles>标签 添加仓库信息
<profile>
<id>nexusProfile</id>
<repositories>
<repository>
<id>central</id>
<name>111</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
<layout>default</layout>
</repository>
</repositories>
</profile>
激活
<activeProfiles>
<!--激活了才生效-->
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>
重启 nexus服务
jenkins的安装
10 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
11 yum install wget
12 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
13 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
14 sudo yum upgrade
15 sudo yum install jenkins java-8-openjdk-devel
16 java -version
17 sudo systemctl daemon-reload
18 sudo systemctl start jenkins
19 sudo systemctl status jenkins