git的使用
一. 版本控制
1.本地版本控制
集中化版本控制(svn)--解决多人协同开发
单点故障,服务器宕机问题,导致客户端无法提交代码。如果服务器磁盘发生故障,备份不够及时,就会有丢失数据的风险
服务端可以有不同版本
2.分布式版本控制 (git)
服务端可以有不同版本,客户端本地仓库都可以有不同版本,避免单点故障,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复,因为每一次的提取操作,实际上都是一次对代码仓库的完整备份
二. 安装与配置
安装
Debian/Ubuntu Git 安装命令为:
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev
apt-get install git
git --version
#git version 1.8.1.2
如果你使用的系统是 Centos/RedHat 安装命令为:
yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel
yum -y install git-core
git --version
##git version 1.7.1
yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel
yum -y install git-core
git --version
#git version 1.7.1
源码安装
我们也可以在官网下载源码包来安装,最新源码包下载地址:https://git-scm.com/download
安装指定系统的依赖包:
########## Centos/RedHat ##########
yum install curl-devel expat-devel gettext-devel \openssl-devel zlib-devel
########## Debian/Ubuntu ##########
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \libz-dev libssl-dev
解压安装下载的源码包:
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
配置
git version #查看安装版本
git config --global user.name "your_username" #设置对应用户名和邮箱
git config --global user.email your_email@domain.com git config --list #查看所有配置
Windows 平台上安装
安装包下载地址:https://gitforwindows.org/
官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/。
三. git 文件的三种状态
已提交(committed):表示已经安全保存在本地版本数据库中
已修改(modified):表示修改了文件,这时保存在磁盘中,还没保存到本地版本数据库中
已暂存(staged): 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
四. 三个工作区域:
工作区:自己创建的本地项目目录
暂存区:add 缓存区
git仓库:commit (隐藏文件.git)
五.创建版本库并提交
git init #初始化本地仓库
git status #查看文件当前git状态
git add 文件名 #将文件加入暂存区
git add .
git commit 文件名 -m “注释说明” # 将文件提交到仓库
git push #提交到仓库
git remote add origin https://gitee.com/luo_lucky/code.git git push -u origin master
#推送仓库
git push -u 文件名 "master"
git ls-files 查看git仓库里面的文件 git log 文件修改日志
六 . 版本切换
git diff HEAD -- 文件名 #文件差异比较
git log -- pretty=oneline #简化提交日志输出(提交日志hash值 HEAD 指针指向说明)
git reset --hard HEAD^(几个^ 就表示回退到上几个版本) #回退文件到指定版本
git reset --hard~100 #回退到100个版本前
git log -- pretty=oneline #回退到最初的版本
git reset --hard git 提交标识号(版本的hash值 5-8个字符) #回到之前/未来的版本
遇到问题:如果回退到之前的某一个版本直接关闭了git命令窗口,怎么样才能回到未来最新的版本喃?
解决方法:
git reflog #用来记录原来操作的命令 可查看最新版本的标识id
七. 文件删除
git checkout -- 文件名 #文件本地误删,从版本库检出
git rm 文件名 #删除版本库里的文件
git clone https://github.com/tianqixin/runoob-git-test (克隆) #下载远程仓库库代码文件到本地(从现有 Git 仓库中拷贝项目)
八. 本地仓库文件推送到github
本地生成ssh公钥和私钥
ssh-keygen -t rsa -C "自己的git邮箱"
2,生成成功后找到.ssh 文件里面生成的公钥和私钥
3,将公钥上传到github
4,校验ssh环境
ssh -T git@github@com
5,执行ssh推送,首先绑定远程地址到本地执行命令
git remote add origin git@github.com:zsyeg/git01.git
6.本地创建分支
git branch -M main
7.执行远程推送操作,将本地库推送到远程master主分支
git push -u origin master
九. git 本地分支操作
git checkout -b leaf01 #创建并切换分支
git branch #查看所有分支
git checkout main # 切换到main分支
git merge leaf01 #在主分支上合并leaf01
git branch -m leaf01 leaf01-01 #重命名分支
git branch -d leafo1-01 # 在主干上生成分支
十. 远程分支操作
git branch -a #查看本地和远程分支
git push origin leaf01 #把本地仓库推送到远程仓库
git chechout -b leaf01 origin/leaf01 #拉取远程分支并在本地创建分支
git push origin :leaf01 #删除远程分支
本地分支的文件冲突
不同分支合并文件冲突(视情况而定)
1,在文件中解决冲突的地方
2,在主分支上提交文件 git add , git commit
对人协同操作冲突--在同一分支上操作文件修改
git push #将本地客户端文件推送到远程仓库
git pull #拉取远程代码(此时会出现冲突场景)
1.找到冲突文件,解决文件冲突错误(视情况而定)
2,提交文件 git add , git commit
十一. 标签基本操作管理
git tag v-0.1 #创建标签
git push origin v-0.1 # 推送本地标签到远程(此时远程仓库有个v-0.1标签压缩包)
git tag -a v_0.2 -m "描述" # 添加带描述的标签
git push tag -a v_0.2 -m "描述" # 推送 ( 此时远程仓库有个带描述的 v-0.2标签压缩包)
git push origin --tags #推送全部未推送到远程的标签
git tag -d v_0.3 #删除本地标签
git tag #查看所有标签
git push origin :refs/tags/v_o3 #删除远程标签

浙公网安备 33010602011771号