一.git的认识
分布式版本控制系统
(一)Git特点:
速度
简单的设计
对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
git参考
(二)Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。
(三)只针对纯文本文件,这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录
二.git的使用
1.安装Git:
yum install -y git
2.获取 Git 仓库通常有两种方式:
将尚未进行版本控制的本地目录转换为 Git 仓库
从其它服务器克隆 一个已存在的 Git 仓库。比如: git clone
3.初始化版本库:
mkdir demo
cd demo/
[root@server1 demo]# git init
Initialized empty Git repository in /root/demo/.git/
[root@server1 demo]# l.
. .. .git #.git目录是git跟踪管理版本库的
[root@server1 demo]# cd .git/
[root@server1 .git]# ls
branches config description HEAD hooks info objects refs
4.用户信息
git config --global user.email "[email protected]"
git config --global user.name "xd"
5.检查当前文件状态
git status #提示下一步可能要干什么
git status -s #简化输出
?? README.txt #新建文件,在工作区
[root@server1 demo]# git add README.txt #跟踪新文件
[root@server1 demo]# git status -s #注意位置,在git目录
A README.txt #add过的,在暂存区
git commit -m "add README.txt" #添加描述提交更新
git commit -a -m "v2" #跳过使用暂存区域
取消暂存的文件
git reset HEAD README.txt
撤消对文件的修改
git checkout – README.txt
6.查看提交历史
git log
git reflog
git log --pretty=oneline #完整的编号文件
7.忽略文件
[root@server1 demo]# cat .gitignore
.* #忽略所有隐藏文件
dir1 #只忽略当前目录下的test文件
8.移除文件
git rm README.txt
9.版本回退
git reflog
git reset --hard 95ef771
10.重命名文件
git mv README.txt README
其实,运行 git mv 就相当于运行了下面三条命令
mv README.txt README, git rm README.txt, git add README
二.gitlab代码仓库
这个和github使用方法,功能相似,不过gitlab是部署在本地的
官网下载
国内下载
软件安装: (官方推荐至少4G内存)
get gitlab-ce-13.2.2-ce.0.el7.x86_64.rpm
yum install gitlab-ce-13.2.2-ce.0.el7.x86_64.rpm
cd /etc/gitlab/
vim gitlab.rb
29 external_url 'http://172.25.2.1' #访问gitlab的地址
gitlab-ctl reconfigure #重载服务,开机自启的
登录gitlab
http://172.25.2.1 #用户root 第一次登录需要强制修改密码
常用命令
gitlab-ctl start # 启动所有 gitlab 组件
gitlab-ctl stop # 停止所有 gitlab 组件
gitlab-ctl restart # 重启所有 gitlab 组件
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 重载服务
gitlab-ctl tail # 查看日志
中文设置
1.仓库新建项目
2.添加ssh公钥
ssh-keygen #生成密钥
3.克隆
3.上传
git push origin master
4.远程项目的添加删除