1.git工具使用
实验环境:
server1:172.25.0.1(4G内存)
1.1 git介绍
Git特点:
• 速度
• 简单的设计
• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
• 完全分布式
• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
• 自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的 目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。
• Git必看秘籍:https://git-scm.com/book/zh/v2
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
• 已修改表示修改了文件,但还没保存到数据库中。
• 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
• 已提交表示数据已经安全地保存在本地数据库中。
• 这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
1.2 git版本控制系统介绍
1.3 git安装
安装git:yum install -y git
初始化版本库:
mkdir demo
git init
ls .git/
.git目录是git跟踪管理版本库的
获取Git 仓库通常有两种方式:
• 将尚未进行版本控制的本地目录转换为 Git 仓库。
• 从其它服务器克隆 一个已存在的 Git 仓库。比如:git clone
1.4 gif的使用命令
用户信息
git config --global user.name "red"
git config --global user.email root@red.org
检查当前文件状态
git status
git status -s
//简化输出
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
跟踪新文件
git add README
忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。
通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。
cat .gitignore
.* ##忽略所有隐藏文件
/test ##只忽略当前目录下的test文件
build/ ##忽略任何目录下名为 build 的文件夹
文件 .gitignore 的格式规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。
星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符
查看已暂存和未暂存的修改
git diff
提交更新
git commit
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。也就是修改之后还没有暂存起来的变化内容。
跳过使用暂存区域
git commit -a -m 'added new benchmarks'
移除文件
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
git rm PROJECTS.md
git rm --cached README
重命名文件
git mv README.md README
其实,运行 git mv 就相当于运行了下面三条命令:
mv README.md README
git rm README.md
git add README
查看提交历史
git log
git log -p -2
git log --stat
git log --pretty=oneline
git reflog
取消暂存的文件
git reset HEAD README.md
撤消对文件的修改
git checkout -- README.md
版本回退
git reflog
git reset --hard efa267a
1.5 远程仓库的使用
远程仓库:注册github帐号,并新建一个仓库:
使用https方式推送每次需要输入用户名和密码,如果不想麻烦的话采用ssh方式:
ssh-keygen -t rsa -b 4096 -C "server1@red.org
生成本地密钥,并上传公钥到github:
推送本地仓库内容到github:
cd demo
需要进入工作目录
git remote add origin https://github.com/aimee-red/demo.git
关联远程仓库
git push -u origin master
//第一次推送需要加 -u参数
**
2.gitlab代码仓库
2.1 GitLab的安装
官网:https://about.gitlab.com/install
软件下载(官方下载慢,推荐使用国内镜像站点) :https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
软件安装: (官方推荐至少4G内存)
yum install -y curl policycoreutils-python openssh-server
解决依赖性
yum install -y gitlab-ce-12.8.5-ce.0.el7.x86_64.rpm
安装gitlab
vim /etc/gitlab/gitlab.rb
external_url 'http://172.25.0.1' //访问gitlab的地址
gitlab-ctl reconfigure
重载服务
登录gitlab: http://172.25.0.1
注意:用户:root 第一次登录需要强制修改密码
2. gitlab常用命令:
gitlab-ctl start
# 启动所有gitlab 组件
gitlab-ctl stop
# 停止所有 gitlab 组件
gitlab-ctl restart
# 重启所有 gitlab 组件
gitlab-ctl status
# 查看服务状态
gitlab-ctl reconfigure
重载服务
gitlab-ctl tai
l # 查看日志
2.3 GitLab的使用
上传文件到私有仓库:
rm -fr demo
删除原有文件
git clone git@172.25.0.1:root/demo.git
远程登录私有仓库
cd demo/
git remote -v
查看远程登录仓库信息
vim index.html
git add index.html
git commit -m "add index.html"
git push -u origin master
上传