企业级自动化代码发布——Git基础与介绍

Git简介

Git是一种分布式版本控制系统

git与SVN对比

项目GITSVN
操作概念复杂,命令多,不易上手简单易操作
分支价格分支廉价分支昂贵
代码管理分布式管理集中式管理
保存保存历史版本的完整文件保持差异文件

git核心

Git最核心的一个概念就是工作流

  • 工作区(Workspace)是电脑中实际的目录
  • 暂存区(Index)类似于缓存区域,临时保存你的改动
  • 仓库区(Repository),分为本地仓库和远程仓库

通常提交代码分为3步:
git add 从工作区提交到暂存区
git commit 从暂存区提交到本地仓库
git push 从本地仓库提交到远程仓库
非原创

git的安装与配置

安装git服务端

#安装yum依赖及软件
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
yum install -y git
# 创建用户组及用户
groupadd git
useradd git -g git
passwd git
# 初始化空的git版本库
[root@git-server ~]# mkdir /home/git/gitrepo
[root@git-server ~]# cd /home/git/gitrepo
[root@git-server gitrepo]# git init --bare runoob.git	#不指定默认为.git
[root@git-server gitrepo]# cd ..
[root@git-server git]# chown -R git:git gitrepo
# 克隆官方的仓库到本地仓库
git clone https://github.com/jenkins-docs/simple-java-maven-app.git

git服务端配置

cd /etc/ssh
vim sshd_config
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

systemctl restart sshd
cd /home/git
mkdir .ssh
chown -R git:git .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
chown -R git:git authorized_keys
systemctl restart sshd

在服务端authorized_keys写上客户端的公钥ip_rsa.pub

[git@git-server ~]$ git config --global user.name "Kelsey1998"
[git@git-server ~]$ git config --global user.email "1284915257@qq.com"
[git@git-server ~]$ cat .gitconfig
[user]
        name = Kelsey1998
        email = 1284915257@qq.com

版本库(仓库)创建

[git@git-server ~]$ mkdir -p workspace/demo
[git@git-server ~]$ cd workspace/demo #工作区
[git@git-server dome]$ git init
Initialized empty Git repository in /home/git/workspace/demo/.git/
# 查看git版本库
[git@git-server demo]$ ls -ld .git
drwxrwxr-x. 7 git git 119 May 30 16:17 .git
表项目录
版本库workspace/demo/.git 又叫仓库
工作区workspace/demo .git版本库所在的目录

git全局文件

用户主目录下的.gitconfig 用户个人
系统文件/etc/gitconfig 全局

git用户名和邮箱地址

[git@git-server ~]$ git config --global user.name "Kelsey1998"
[git@git-server ~]$ git config --global user.email "1284915257@qq.com"
[git@git-server ~]$ cat .gitconfig
[user]
        name = Kelsey1998
        email = 1284915257@qq.com

配置的用户名和邮箱地址将在版本库提交时用到

git别名

[root@git-server ~]# git config --system alias.st status
[root@git-server ~]# git config --system alias.co checkout
[root@git-server ~]# git config --system alias.ci commit
[root@git-server ~]# git config --system alias.br branch
[git@git-server ~]$ cat /etc/gitconfig
[alias]
        st = status
        co = checkout
        ci = commit
        br = branch

git命令高亮显示

[git@git-server ~]$ git config --global color.ui true
[git@git-server ~]$ cat .gitconfig
[user]
        name = Kelsey1998
        email = 1284915257@qq.com
[color]
        ui = true
级别有效目录
Local当前项目有效(工作目录/.git/config)
Global当前用户有效(用户目录/.gitconfig)
system所有用户有效(Git目录/etc/gitconfig)

git命令

git status

  • git status
    查看项目的当前状态
  • git status -s
    --short,输出标记为两列,第一列是对staging暂存区而言,第二列是对workspace工作区而言
状态含义
?未被添加到缓存
A本地新增的文件
M文件的内容或者mode被修改了
AM文件在被添加到缓存之后又有改动,需要再次被git add
D本地删除的文件
R修改文件名

在这里插入图片描述

git add

git add 将文件添加到缓存

git add .	#添加当前项目的所有文件
git add <filename1,filename2>	#添加指定文件

git reset HEAD

git reset HEAD <filename> 取消已缓存的内容

git diff

git diff 显示已写入缓存与已修改但尚未写入缓存的改动的区别

应用场景命令
尚未缓存的改动git diff
查看已缓存的改动git diff --cached
查看已缓存的与未缓存的所有改动git diff HEAD
显示摘要而非整个diffgit diff --stat

git commit

git commit 将缓存区内容添加到仓库中
git commit -m "description"

git rm

git rm <file>	#从Git中移除某个文件
git rm --cached <file>	#把文件从暂存区域移除(保留在当前的作目录中)
git rm -f <file>	#把文件从暂存区域移除(不保留在当前的作目录中)
git rm -r <dir>	   #递归删除

git mv

git mv 移动或重命名一t个文件、目录、软连接

提交到Github

git remote add anliu git@github.com:an1iu520/anliutest.git
git push -u anliu master

git客户端

git clone git@192.168.213.122:gitrepo/simple-java-maven-app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值