-
Git基本操作
- 问题:
- 快速搭建好一台git服务器,并测试该版本控制软件,要求如下:
- 安装git软件
- 创建版本库
- 客户端克隆版本库到本地
- 本地工作目录修改数据
- 提交本地修改到服务器
- 步骤:
-
- 部署git服务器(192.168.2.100作为远程git服务器)
- 安装git软件
- [root@pc207 logs]# yum -y install git
- 初始化一个空仓库
- [root@pc207 logs]# mkdir /var/git
- [root@pc207 logs]# git init /var/git/project --bare
- [root@pc207 logs]# ls /var/git/project/
branches config description HEAD hooks info objects refs -
- 客户端测试(192.168.2.200作为客户端主机)
- 使用git常用指令列表
- clone:将远程服务器的仓库可控到本地
- config:修改git配置
- add:添加修改到暂存区
- commit:提交修改到本地仓库
- push:提交修改到远程服务器
- [root@pc207 opt]# git clone root@192.168.2.100:/var/git/project
-
- 在本地工作区对数据进行增删改查(必须要先计入仓库再操作数据)
- [root@pc207 project]# echo “init date” > init.txt
[root@pc207 project]# mkdir demo
[root@pc207 project]# cp /etc/hosts demo -
- 查看仓库中数据的状态
- [root@pc207 project]# git status
-
- 将工作区的修改提交到暂存区
- [root@pc207 project]# git add .
-
- 将暂存区修改提交到本地仓库
- [root@pc207 project]# git config --global user.email “wufan@qq.com”
[root@pc207 project]# git config --global user.name “wufan”
[root@pc207 project]# cat $HOME/.gitconfig
[user]
email = wufan@qq.com
name = wufan
[root@pc207 project]# git commit -m “haha” -
- 将本地仓库中的数据推送到远程服务器(web2将数据推送到web1)
- [root@pc207 project]# git config --global push.default simple
- [root@pc207 project]# git push
-
- 将服务器上的数据更新到本地(web1的数据更新到web2)
- [root@pc207 project]# echo “haha” >> init.txt
- [root@pc207 project]# git add .
- [root@pc207 project]# git commit -m “yiyi”
- [root@pc207 project]# git push
- [root@localhost project]# git pull
-
- 查看版本日志
- [root@pc207 project]# git log
- [root@pc207 project]# git log --pretty=online
- [root@pc207 project]# git log --oneline
- [root@pc207 project]# git reflog
-
head指针操作
- 问题:
- 查看git版本信息
- 移动指针
- 通过移动head指针恢复数据
- 方案:
- head指针是一个可以在任何分支和版本移动的指针,通过移动指针我们可以将数据还原到任何版本。每做一次提交操作都会导致git更新一个版本,head指针也跟着自动移动。
- [root@pc207 project]# git reflog
f72bd60 HEAD@{0}: commit: yiyi
f9d47dc HEAD@{1}: commit: test
eea6269 HEAD@{2}: commit (initial): haha
提示:当前head指针为head@0
[root@pc207 project]# git reset --hard eea62
HEAD is now at eea6269 haha
[root@pc207 project]# git reflog
eea6269 HEAD@{0}: reset: moving to eea62
f72bd60 HEAD@{1}: commit: yiyi
f9d47dc HEAD@{2}: commit: test
eea6269 HEAD@{3}: commit (initial): haha -
分支管理
- 常见的分支规范:
- master分支(是主分支,是代码核心)
- develop(是新开发成果的分支)
- release(是发布新产品设置的分支)
- hotfix(是修复软件bug去缺陷的分支)
- feature(为开发新功能设置的分支)
- 查看并创建分支
- [root@pc207 project]# git status
- [root@pc207 project]# git branch -v
- 创建分支
- [root@pc207 project]# git branch hotfix
[root@pc207 project]# git branch feature
[root@pc207 project]# git branch -v
feature f72bd60 yiyi
hotfix f72bd60 yiyi
master f72bd60 yiyi - 切换并合并分支
- [root@pc207 project]# git checkout hotfix
- [root@pc207 project]# git checkout hotfix
Switched to branch ‘hotfix’
[root@pc207 project]# git branch
feature
hotfix
master - 在新的分支下可以继续进行数据操作
- [root@pc207 project]# echo “fix bugs” > fix.txt
[root@pc207 project]# git add .
[root@pc207 project]# git commit -m ‘fix a bug’ - 将hotfix修改的数据合并到master分支
- 合并前必须要切换到master分支,然后再执行merge命令
- [root@pc207 project]# git checkout master
Switched to branch ‘master’
[root@pc207 project]# git merge hotfix
Updating f72bd60…79e2042
Fast-forward
fix.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 fix.txt - 解决半分分支的冲突问题
- 在不同分支中修改相同文件的相同行数据,模拟数据冲突
-
git服务器
- 问题:
- 创建ssh协议服务器
- 创建git协议服务器
- 创建http协议服务器
-
- ssh协议服务器
- [root@pc207 project]# ssh-keygen -f /root/.ssh/id_rsa -N ‘’
- 非交互式创建秘钥
- [root@pc207 project]# ssh-copy-id root@192.168.2.100
-
- git协议服务器(只读操作的服务器)
- 安装git-daemon软件包
- [root@pc207 logs]# yum -y install git-daemon
- 修改配置/usr/lib/systemd/system/git@service
- [root@pc207 system]# vim /usr/lib/systemd/system/git@.service
- 7 ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/git --export-all --user-path=public_git --syslog --in etd --verbose
- 将base-path改为仓库路径
- 启动服务
- [root@pc207 system]# systemctl start git.socket
- 用客户端测试
服务器运维-git
最新推荐文章于 2022-12-05 19:51:02 发布