git学习和使用,通过Demo去学习。

1.git结构

2.git使用及常用命令介绍

3.git分支概述

1.git结构
1.1 git代码托管中心
局域网 (GitLib)自己公司会搭建
公网(GitHub , 码云)
1.2 git本地仓库结构 如下

在这里插入图片描述

2.git使用及常用命令介绍
如果没安装git请移步到我这篇博客
2.1 创建文件夹 , 初始化git仓库
git 命令窗口支持Linux命令
mkdir lzj
cd lzj
git intit

在这里插入图片描述

进入创建文件夹里面有一个初始化生成隐藏文件夹 .git 我们可以进入看一下有什么

在这里插入图片描述

2.2 设置签名
因为要提交代码到代码托管中心,就要有识别身份
这个相当于昵称,email可以是虚拟不存在的,因为只是一个识别的身份标志而已
2.2.1.设置本项目的签名
git config user.name lzj
git config user.email lzj@qq.com
本项目的签名信息将会存储在上面提到.git文件夹中config文件中
2.2.2.设置本系统的签名
git config --global user.name lzj
git config --global user.email lzj@qq.com
本系统的签名信息将会存储在C盘/User/系统用户名/.gitconfig文件中
当设置了本项目签名,优先使用项目签名,如果没有设置本项目签名则用本系统的签名,两者都没有则上传会报错
2.3 git 常用的命令
命令作用
git status本地仓库的暂存区当前状态
git add <文件名>将文件添加到暂存区
git rm --cache <文件名>将文件从暂存区移除
git commit “提交描述” <文件名>将暂存区的文件提交至版本库
-m添加提交描述
git log查看提交日志记录(查看版本库版本信息)
--pretty=oneline或--oneline以一行的形式去显示提交日志
git reflog查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git reset--hard <版本号>移动HEAD版本库指针指向的版本,和重置暂存区以及重置工作区
--soft <版本号>仅移动HEAD版本库指针指向的版本,不修改暂存区和工作区
--mixed <版本号>移动HEAD版本库指针指向的版本,和重置暂存区
HEAD回退到当前指针指向版本
HEAD^版本回退到上一个版本,有多少个^就回退多少版本
HEAD~<回退版本次数>指定版本回退多少个版本
git diff 所有文件和暂存区进行的比较
<文件名>和暂存区进行指定文件的比较
HEAD所有文件和版本库当前指针指向的版本进行比较
HEAD <文件名>和版本库当前指针指向的版本进行指定文件的比较
<版本库版本号> <文件名>和版本库指定版本进行指定文件的比较
<分支名字>目前分支工作区文件和指定分支的工作区文件比较
git branch列出当前分支清单
-v查看各个分支最后一个提交信息
-a查看远程分支和本地分支
--merged查看哪些分支已经合并入当前分支
<分支名>创建分支
git checkout <分支名>切换分支
git merge <分支名>合并分支(这命令是在要 被合并 的分支上 执行这个命令)
git remote列出已经存在的远程分支
-v列出已经存在的远程分支详细信息,在每一个名字后面列出其远程url
add <远程仓库别名> <远程仓库的url>添加一个远程仓库(远程仓库别名不一定要和代码托管中心的仓库名一样)
git push <远程仓库别名> <本地分支名字>用于将本地分支的更新,推送到远程主机,如果该远程分支不存在,则会被新建。
<远程仓库别名> <本地分支名字>:<远程分支名字>用于将本地分支的更新,推送到远程主机指定的分支
<远程仓库别名> :<远程分支名字>删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支
git clone <远程仓库的url>克隆远程仓库到本地仓库
git fetch <远程仓库别名> <远程分支名字>:<指定新建分支的名字> 从远程仓库指定分支提取到本地仓库新建一个分支(如果没指定就用[远程仓库别名/远程分支名字]
git fetch <远程仓库别名> <远程分支名字>:<指定新建分支的名字> 从远程仓库指定分支提取到本地仓库新建一个指定名字的分支(如果没指定就用[远程仓库别名/远程分支名字]
git pull <远程仓库别名> <远程分支名字> 从远程仓库指定分支提取到本地仓库并合并到本地分支
git help <命令>查看命令帮助
3.git分支概述
3.1 分支

在这里插入图片描述

可以看到主干一般是正式版,一般不在主干提交开发,一般在自定义分支上开发,各个主干和分支是相互独立,互不影响,也有热修补,就我们熟知的修BUG的版本去修补主干的版本
3.2 分支的操作 (详细说明我上面一个表格有说明)
3.2.1 查看所属分支 git branch
3.2.2 创构建分支 git branch 分支名字
3.2.3 切换分支 git checkout 分支名字
3.2.4 合并分支
1)先切换 被合并的 分支上
2)合并分支 git merge 合并分支名字
3.3 合并分支 产生的冲突
3.3.1 场景介绍:
一个项目托管在代码托管中心,A,B员工分别克隆到本地仓库开发,当A员工开发完了,提交到代码托管中心,然后B员工接着也开发完了,准备提交到代码托管中心,这时候发生冲突报错。当然还有很多冲突场景,但是都是类似以下的解决方法。下面是解决方法
3.3.2 解决方法:
先看看报错

在这里插入图片描述

原因A员工可能修改了A文件,B员工也修改了A文件,此时GIT不知道怎么选择,
  1. 先拉取下来
    在这里插入图片描述
注意: 这里推荐 用 git fetch去拉取代码,为什么呢?因为上图我用git pull拉取代码,如果我没有提交本地修改的代码到版本仓库,他就会覆盖,git pull包含拉取和合并的操作。下面我用git fetch 去操作

在这里插入图片描述

看一下所有分支,有一个抓取代码托管中心的代码新建的分支origin/master

在这里插入图片描述

看一下本地代码修改和从代码托管中心的代码比较有什么不同

在这里插入图片描述

在这里你要先把你本地仓库修改的代码提交到版本仓库中

在这里插入图片描述

然后合并,手动解决冲突

在这里插入图片描述

这时候就要人去手动选择哪个,并把标记去掉
然后再
git add 文件名
#解决冲突问题 commit不需要文件名
git commit -m "解决冲突的问题"
git push <远程仓库的别名> <远程仓库的分支名字>





一键查询淘宝/拼多多内部优惠券,每日大额外卖红包,购物省钱的宝藏工具
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值