git 相当于快照 可以实现代码回滚
优点 部署简单
分布式的操作系统
系统环境准备
#cat /etc/redhat-release
#uname -r
#getenforce
#systemctl stop firewalld
#rmp -qa git
#yum install -y git
使用用户
# git config --global user.name 'jackie'
#git config --global user.email '985848343@qq.com'
# git config --global color.ui true 语法高亮
隐藏文件
# cat .gitconfig 查看那个人在使用仓库
# mkdir jackie
# init 初始化
#git init git初始化
#ll -a 查看初始化仓库
#git status 查看仓库状态
#git diff 查看工作区和暂存区的
#git diff --cached 查看暂存区和仓库
#git rm cached c 从暂存区撤回来
#rm -f c 直接删除文件
#git branch testing 创建分支
#git branch -D testing 删除分支
#git commit -am "modified aaa add master" 添加修改的文件到仓库
#git checkout texting 切换分支
#git merge testing 合并分支
#git commit -am "merge testing" 启动合并分支
#git tag -a v2.0 回滚值 -m "tag v2.0 回滚值添加的内容" 设置版本号
#git tag 查询版本号
#git tag -d 1.0 删除版本号
#git reset --hard v2.0/回滚值 版本回滚
#git reflog 查看回滚值
git常用的基础命令
[root@centos7.7 data]# touch a b c
创建工作文件
[root@centos7.7 data]# git add a
把a文件添加到暂存区
[root@centos7.7 data]# git add .
把所有的文件添加到暂存区
[root@centos7.7 data]# git rm --cached c
从暂存区撤回来 c
[root@centos7.7 data]# rm -rf c
彻底删除 c
[root@centos7.7 data]# git rm -f b
直接同暂存区同工作区一起删除b
[root@centos7.7 data]# git commit -m "add newfile a"
添加新文件a到本地仓库
[root@centos7.7 data]# mv a a.txt
工作区里改了a的名字
git rm --cached a
工作区同暂存区一同删除a,还未删干净
[root@centos7.7 data]# git add a.txt
把a.txt添加到暂存区
[root@centos7.7 data]# git commit -m "modifiled a a.txt"
添加a.txt到本地仓库
git mv a.txt a 直接从暂存区和工作区一同改名为a
[root@centos7.7 data]# git commit -m "mv a.txt a"
直接添加加到本地仓库a
git diff 比较工作区和暂存区区别
git diff --cached 比较暂存区和仓库区别
[root@centos7.7 data]# echo index > a
在工作目录增加index
[root@centos7.7 data]# cat a
[root@centos7.7 data]# git diff
a的工作区和暂存有差异
[root@centos7.7 data]# git add a
[root@centos7.7 data]# git diff
a的工作区和暂存区没差异
[root@centos7.7 data]# git commit -m "add index"
增加index到本地仓库
git diff --cached 对比本地仓库和暂存区没差异
[root@centos7.7 data]# echo 123 >> a
直接追加到工作区a
[root@centos7.7 data]# git commit -am "add 123 >a"
如果a已经被仓库管理,就可以直接用一条命令就可以
git log --oneline 一行显示commit信息
git代码合并
git log --oneline --decorate 快照回滚的地方,指向最后一个分支
[root@centos7.7 data]# git log -p
显示详细改动
[root@centos7.7 data]# git log -1 -p
显示一条内容
[root@centos7.7 data]# git reset --hard 03c1b98 回滚数据到某一个提交
git reflog 查看历史快照IP
root@centos7.7 data]# git branch testing 新建testing分支
root@centos7.7 data]# git branch 察看*在哪就在那个分支上面
[root@centos7.7 data]# touch aaa bbb ccc
[root@centos7.7 data]# git add aaa
把aaa添加到暂存区
[root@centos7.7 data]# git commit -m "add aaa"
[root@centos7.7 data]# git checkout testing 切换到testing分支
[root@centos7.7 data]# git checkout -b testing 创建并切换到testing分支
[root@centos7.7 data]# ll aaa bbb ccc 没有出现
[root@centos7.7 data]# git checkout master 切换到master分支
[root@centos7.7 data]# git branch -d testing 删除testing分支
[root@centos7.7 data]# git checkout -b testing 创建并切换到testing分支
[root@centos7.7 data]# ll aaa bbb ccc 出现
[root@centos7.7 data]# git checkout master 切换到master
[root@centos7.7 data]# touch master-eee 创建master-eee
[root@centos7.7 data]# git add . 添加到暂存区
[root@centos7.7 data]# git commit -m "add newfile master-eee"
[root@centos7.7 data]# git merge testing 合并分支testing到主干master上
[root@centos7.7 data]# git branch -d testing 删除testing
git合并冲突
[root@centos7.7 data]# echo "master" >> aaa 将master 重定向到aaa
[root@centos7.7 data]# git commit -am "modifile aaa add master"
修改的aaa添加到主干master仓库
转到testing支干
[root@centos7.7 data]# git checkout testing
[root@centos7.7 data]# echo "testing" >> aaa 把testing追加到aaa中
[root@centos7.7 data]# git commit -am "modifile aaa add testing"
修改的aaa添加到本地testing仓库
转到master主干
[root@centos7.7 data]# git checkout master
[root@centos7.7 data]# git merge testing
合并出现冲突
[root@centos7.7 data]# vim aaa
修改master中aaa文件
[root@centos7.7 data]# git commit -am "merge testing"
交付给本地仓库
git标签使用
[root@centos7.7 data]# git tag -a v1.0 e5f2ac8 -m "tag v1.0 add index"
创建index版本号
[root@centos7.7 data]# git show v1.0
[root@centos7.7 data]# git reset --hard v1.0 根据版本回滚
[root@centos7.7 data]# git reflog
察看历史镜像IP
[root@centos7.7 data]# git reset --hard 277db0d 回滚到merge testing
[root@centos7.7 data]# git tag -a "v2.0" -m "xxx" 打标签
[root@centos7.7 data]# git tag -d "v2.0" -m "xxx" 删除标签
github
最大的代码远程仓库
github 不仅可以托管各种git版本仓库,还有更美观的web界面
[root@centos7.7 data]# git remote add origin https://github.com/jackie
-beep/git-data.git
添加一个远程仓库origin
[root@centos7.7 data]# git remote
察看远程仓库名称
[root@centos7.7 data]# git branch -M master
[root@centos7.7 data]# git push -u origin master
做一个免秘钥
~] ssh-keygen -t rsa
~] cat .ssh/id_rsa.pub
把公共秘钥复制到 web页面里
ssh keys
推送到远程仓库origin
Username for 'https://github.com': jackie-beep
Password for 'https://jackie-beep@github.com': zhu13277225338
[root@centos7.7 tmp]# git clone git@github.com:jackie-beep/git-data.git
推送完毕
git clone git@10.0.0.134:test/git_data.git
代码克隆到本地仓库
gitlab安装
停止 gitlab-ctl stop 全部( 单个nginx)
http://about.gitlab.com/install/#centos-7
#首先安装gitlab依赖
yum install curl openssh-server openssh-clients postfix cronie
policycoreutils-python –y
#启动postfix,并设置为开机启动
systemctl start postfix
#设置防火墙
systemctl restart firewalld
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
#安装rpm包
rpm -i gitlab-ce-10.0.2-ce.0.el7.x86_64.rpm
#根据提示,继续执行指令配置gitlab。
gitlab-ctl reconfigure
#修改配置文件gitlab.rb
cd /etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
将external_url变量的地址修改为gitlab所在centos的ip地址。
(因为我这台centos是16.5,故配成图中的地址)。
10.0.0.134:82
nginx['listen_port']=82
#因为修改了配置文件,故需要重新加载配置内容。
gitlab-ctl reconfigure
gitlab-ctl restart
10.0.0.134:82 访问gitlab 82端口
创建组--> 项目--> 人员
组 test
new project test git--data
#ssh keys
#ssh-keygen -t rsa
#cat .ssh/id_rsa.pub
把公共秘钥复制到 web页面里ssh keys
#git remote 查看远程仓库
#git remote remove +远程仓库名字移除仓库
#cd jackie
#git checkout testing 转换成测试文件
#git remote add origin 移除原有仓库
#git@10.0.0.134:test/git__data.git 添加一个新的远程仓库
#git push -u origin testing 推送代码到远程仓库
继续推送文件 touch test.txt
git add .
git commit -m "newfile testtest.txt"
git push -u origin master
远程仓库增加test.txt文件
增加开发新用户 dev dev 7777@qq.com
设置密码 12345678
加入组 开发新用户加入 test组
登录开发用户 设置公共秘钥
ssh-keygen -t sra
cat .ssh/id.rsa.pub
git clone git@10.0.0.134:test/git_data.git克隆到本地仓库
cd git__data/
-->git__data]#
touch newfile.txt
git add .
git commit -m "newfile"
git config --global uesr.email "dev@example.com"
git config --global uesr.name"dev"
main分支保护
开发端
*testing
-->data ]# touch 123.txt
git add .
git commit -m "newfile 123.txt"
--> data]# git push -u origin dev
git pull 最新数据同步