欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

GIT版本控制系统

发布时间:2025/3/21 windows 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 GIT版本控制系统 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

一.git安装与介绍

1.git的概述

2.GIT的安装

二.GIT的运用

1.先进入仓库文件创建用户与邮箱

2.写入数据基本命令测试

3.HEAD指针

4.Git分支

5.免密通信

6.git其他操作命令:

7.踩坑瞬间


一.git安装与介绍

1.git的概述

git是一种开源的分布式的vcs(version control system)版本控制系统。

集中式 SVN

分布式 GIT

关网:Gitee - 基于 Git 的代码托管和研发协作平台

GitHub: Where the world builds software · GitHub

git是服务

服务端:就是提供git仓库服务供客户端访问使用的

客户端:访问git仓库使用数据及修改数据

所谓的服务端安装的其实也是git

git 基本概念

--git仓库:保存所有数据的地方

--工作区:从仓库提取出来的文件,放在磁盘上使用或修改

--暂缓区:保存下次提交文件信息的列表信息也就add之后的列表

2.GIT的安装

yum源准备

~]# vim /etc/yum.repos.d/CentOS-Base.repo [extras] gpgcheck=1 gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7 enabled=1 baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/ name=Qcloud centos extras - $basearch [os] gpgcheck=1 gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7 enabled=1 baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/ name=Qcloud centos os - $basearch [updates] gpgcheck=1 gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7 enabled=1 baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/ name=Qcloud centos updates - $basearch ​ ~]# vim /etc/yum.repos.d/CentOS-Epel.repo [epel] name=EPEL for redhat/centos $releasever - $basearch failovermethod=priority gpgcheck=1 gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7 enabled=1 baseurl=http://mirrors.tencentyun.com/epel/$releasever/$basearch/

服务端:

# 腾讯yum或阿里的都可以 ~]# dnf -y install git   # centos8服务端安装git # 或7的安装方法 ~]# yum -y install git ~]# mkdir /var/lib/git   # 创建git目录 ~]# git init /var/lib/git/project --bare # 创建空仓库,用来存储项目数据 # --bare 不加这个则仓库只能看不能写

客户端:

~]# yum -y install git   # 客户端安装git ~]# git clone 192.168.4.20:/var/lib/git/project # 克隆仓库

二.GIT的运用

1.先进入仓库文件创建用户与邮箱

# 使用前先创建用户 ~]# cd project/   # 进入仓库 ~]# git config --global user.name "abc"   # 定义客户端用户名 ~]# git config --global user.email "abc@abc.com" # 定义客户端邮箱 ​ ~]# ls ./git (管理仓库文件) ~]# cat ./gitconfig //检查用户与邮箱是否创建

2.写入数据基本命令测试

~]# echo "abc001" > 001.txt (写入内容测试) ~]# git add . # (当有多个文件的时候可以先指定单个)将仓库有变化的文件提交到暂存区(只是通知系统暂时记住【为了永久保存】);可以把点换成指定的日志信息 ​ ~]# git commit -m "001" # 提交之前暂存区的数据永久保存到仓库(小的改变不保存)(-m 定义日志提示信息) ​ ~]# git push   # 将本地仓库数据推送到远程git仓库服务器中 # 或者 ~]# git push -u origin master ​ ~]# git log   # 查询完整日志 ~]# git log --pretty=oneline   # 精简日志 ~]# git log --oneline   # 最精简日志 ~]# git reflog   # 本机操作日志 ​ ~]# Git status # 查看并告诉下一步操作 ​ ## 测试删除 ~]# rm -rf project/ ~]# git clone 192.168.4.20:/var/lib/git/project ## 注意已经导入过一次用户不需要重复定义,(自动保存在当前加用户下)可查看 ~]# cat ~/.gitconfig [user]name = keyaoemail = 2023630895@qq.com ~]# git log --oneline # 精简日志,此时只有一条操作日志 ~]# git reflog   # 本机操作日志,此时还有删除前的日志记录

思维导图

3.HEAD指针

可以将仓库恢复到过去的状态(类似虚拟机快照,只能对本仓库)

~]# git reflog #查看日志,找到旧数据所在时间节点 ~]# git reset --hard xxxx   #回到过去,xxxx是时间节点的记录 #把需要找回的数据,从仓库中拷贝到另外一个目录 # --hard 强制恢复 ​ ~]# git reset --hard xxxx   #回到现在 #在之前的目录找回旧数据 Ls .. #(查看上一次修改的目录下文件) ls ..

4.Git分支

常见的分支规范如下:

分支名作用
MASTER分支MASTER是主分支,是代码的核心
DEVELOP分支DEVELOP最新开发成果的分支
RELEASE分支为发布新产品设置的分支
HOTFIX分支为了修复软件BUG缺陷的分支
FEATURE分支为开发新功能设置的分支

当项目内容比较多时,可以在git中使用分支,不同分支的文件可以互不干扰而不用创建多个仓库

~]# git branch                   # 查看分支,*代表目前所在分支 # 如果没有看到,需要提交一个对象,commit之后才会真正建立master分支,此时才可以建立其它分 ​ ~]# git branch hotfix             # 创建新分支, ~]# git checkout hotfix           # 切换到新分支 ​ ## 注意:此时ls查看本地有master的文件,这是git的特性,在master创建的文档所有分支都可以看到(项目描述文档),但分支创建之后master再次修改则就看不到了 ​ ~]# echo "hotfix-001" > hotfix001.txt   # 创建属于hotfix分支的文件 ~]# git add .   # 提交到暂存区 ~]# git commit -m "hotfix001"           # 提交到本地仓库 ~]# git checkout master               # 切换回默认分支 ​ ~]# echo master > master.txt ~]# git add . ~]# git commit -m "master" ~]# git checkout master ~]# git merge hotfix       Merge branch 'hotfix' ...... # 合并日志,可写可不写 # 将hotfix分支的数据与当前分支合并 ~]# ls a.txt hotfix001.txt master.txt # 合并之后在提交一次不然可能会报错

分支中的特殊情况:

如果分别在不同分支,创建同名文件,内容不同,再进行合并时,会发生冲突,此时需要手工修改冲突文件,修改完之后,就可以解决冲突

~]# git merge hotfix   # 合并分支,失败,因为两个分支有同名文件,但内容不同CONFLICT (add/add): Merge conflict in test.txtAutomatic merge failed; fix conflicts and then commit the result. ​ ~]# vim abc.txt   # 手动修改文件(看要保存谁),保存退出后即可解决 ~]# git add .   //提交到暂存区 ~]# git commit -m "abc+"   //提交到本地仓库

5.免密通信

使用ssh协议建立连接,实现

~]# ssh-keygen   # 创建ssh秘钥 ~]# ssh-copy-id 192.168.4.20   # 传递秘钥到4.20 ~]# git clone 192.168.4.20:/var/lib/git/test   # 克隆不需要密码 ~]# cd test   # 进入仓库 ~]# echo xyz > xyz   # 创建文件,然后提交 ~]# git add . ~]# git commit -m "xyz" ~]# git push   # 上传到服务器也无需密码 ~]# Git pull (更新下拽最新数据)

6.git其他操作命令:

~]# git remote -v   # 查看远程服务器名字与ip(绑定了几台,默认两个是一台的名字) ~]# git remote add tom 192.168.4.20:/var/lib/git/test   # 与新服务器关联,名字叫tom ​ ~]# echo test01 > test01.txt   # 创建测试文件 ~]# git add . ~]# git commit -m "test01" ~]# git push -u origin master     # 指定名为origin的远程服务器提交数据到master分支 ​ ~]# git remote remove origin   # 删除名为origin的远程服务器 ​ ~]# git remote -v ~]# echo test02 > test02.txt   # 创建测试文件分支(当有多台远程服务器) ​ ~]# git remote add origin ~]# 192.168.4.20:/var/lib/git/web   # 添加名为origin的服务器 ~]# git pull tom master 更新数据 ~]# git pull web master   # 从web服务器的master分支下载数据,如果是克隆命令的话可以复制整个仓库的数据,如果是使用pull下载数据,仅仅会下载服务器有而客户机没有的数据

7.踩坑瞬间

1)制做仓库时不加--bare报错与解决

# 客户端在项目中添加 ~]# vim .git/config ...... [receive]denyCurrentBranch = ignore

2)git push 失败 # 指定节点 ~]# git push -u origin master

总结

以上是生活随笔为你收集整理的GIT版本控制系统的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。