centos 安装git_Git版本控制

1.安装Git版本控制系统

Git的工作区、暂存区和版本库的含义

  • 工作区:就是你在电脑里能看到的目录。

  • 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

1.安装和配置git

yum install git -y
git --version

git config --global user.name "chenkang" -->声明自己的用户名
git config --global user.email "admin@example.com" -->声明自己的用户邮箱
git config --global color.ui "true"

2.创建版本库【初始化一个仓库】

git init

3.git仓库添加文件

1.添加当前目录所有文件到缓冲区
git add .

2.将缓冲区的内容添加到本地的git仓库中
git commit -m 'add three file'

4.git修改文件名称并提交

git  mv  file1  file4
git commit -m 'change file name'

5.git的文件对比

1.本地目录和缓冲区文件对比
git diff file3

2.缓冲区文件和仓库文件对比
git diff --cached file3

6.实现回退功能

#查看当前状态之后的commit提交信息
git log --oneline

#查看当前的指针
git log --oneline --decorate

#回退到commit Id 为942bdf3的状态
git reset --hard 942bdf3

查看所有历史版本
git reflog --oneline
git reset --hard 942bdf3

#查看提交历史版本
git log #详细历史记录
git log --oneline #简洁查看
git log --graph #查看历史中什么时候出现了分支、合并
git log --reverse #逆向显示版本日志
git log --author=douer --oneline -5 #查找指定用户的提交日志并只显示5行
#查找三周前且在九月二十八日之后的所有提交
git log --oneline --before={3.weeks.ago} --after={2019-09-28} --no-merges

7.撤销修改的文件

将提交到缓冲的区文件撤回
git reset HEAD file3(文件名)

未add到缓冲区的文件撤回
git checkout -- file3(文件名)

8.代码提交的流程图2e495eb322be9088bb76cd951ebac3c6.png

2.git分支管理

分支管理的目的就是将当前已经可以发布模块放在一个分支,在另外一个分支进行进一步开发,开发完成后可以进行分支合并。

在gitlab上默认的分支是master(主分支),也只有这一个分支,其他分支需要开发人员自行建立。

#增加一个新分支
git branch dev01
#切换分支
git checkout dev01

#在开发分支上合并主分支,代码冲突在其他分支上解决
git merge master -m '注释'

#切回主分支
git checkout master
#在主分支合并开发
git merge dev01 -m '注释'

实际开发时,应该按照以下几个原则进行开发

  • 1、master分支应该是非常稳定的,也就是仅用来发布新版本,平时不在上面干活

  • 2、开发都在dev分支,也就是说dev分支是不稳定的,到某个时候,比如发布版本的时候,将dev分支合并到master上,在master分支发布版本

  • 3、开发者可以在dev分支上开发,每个人都有自己的分支,最后往dev分支合并就可以了

  • 4、合并分支的时候,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,可以看出曾经做过合并,而fast forward则看不出来

3.git标签管理

标签给commit起一个容易记的别名

#给当前版本打标签
git tag v1.2

#删除标签
git tag -d v1.2

#给任意版本打标签
git tag -a v1.0 -m '优化了1111 修复bug' a119962

#查看标签的详细信息
[root@node1 warehouse]# git show v1.1
tag v1.1
Tagger: douer <245684979@qq.com>
Date: Mon Oct 28 14:25:25 2019 +0800

v1.1 add 机器人

commit ff8f2058237206f34be4670cc5822d3b70f333b5
Author: douer <245684979@qq.com>
Date: Mon Oct 28 13:46:59 2019 +0800

first

diff --git a/file4 b/file4
new file mode 100644
index 0000000..e69de29

4.git导出代码方法

1.使用git archieve命令进行代码打包

git archive --format tar.gz --output "./output.tar.gz" master

* 将master分支打包为output.tar.gz
* --format 指明打包格式,若不指明此项,则根据--output中的文件名推断文件格式。
* --output 指明输出包名

#所以也可以将上述命令简化为:
git archive --output "./output.tar.gz" master

#可以使用"-l"参数获得支持的文件格式列表
[root@node1 warehouse]# git archive -l
tar
tgz
tar.gz
zip

2.打包不同的分支或commit

>如果想打包不同分支,只要使用不同分支名即可。比如有一个分支名为“dev01”,可以用如下命令将其打包。
git archive --format tar.gz --output "./output.tar.gz" dev01

>如果要打包某个commit,只要先使用git log找到相应的commit id, 再使用该commit id打包即可。
git archive --format tar.gz --output "./output.tar.gz" 5ca16ac0d603603

#打包某个目录
>如果想打包master下的目录,可以用下面命令
git archive --format tar.gz --output "./output.tar.gz" master #注意:打包建议在代码库的根目录下进行,不然会碰到各种问题

5.git的升级

(CentOS自带的有git,不过版本比较低。可以选择进行升级。)

#测试环境
[root@node1 tools]# git --version
git version 1.8.3.1
[root@node1 tools]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

#安装依赖软件
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc -y
yum install gcc perl-ExtUtils-MakeMaker -y

#卸载低版本git
yum remove git -y

#下载最新版本
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.23.0.tar.xz

#进行编译安装最新版git
[root@node1 warehouse]# cd /usr/local/src/
[root@node1 src]# tar xf /server/tools/git-2.23.0.tar.xz
[root@node1 src]# cd git-2.23.0/
[root@node1 git-2.23.0]# make prefix=/usr/local/git all
[root@node1 git-2.23.0]# make prefix=/usr/local/git install
[root@node1 git-2.23.0]# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile

0c36843b325f0c9f07a4277ddc912d86.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值