git的相关知识

版本控制工具应该有的功能

  • 协同修改
    多人并行不悖的修改服务器端的同一个文件。
  • 数据备份
    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
  • 版本管理
    在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。
  • 权限控制
    对团队中参与开发的人员进行权限控制。对团队外开发者贡献的代码进行审核——Git 独有。
  • 历史记录
    查看修改人、修改时间、修改内容、日志信息。将本地文件恢复到某一个历史状态。
  • 分支管理
    允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

版本控制简介

版本控制工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代。
常见的版本控制工具

  • svn 容易单点故障
  • git 分布式管理,不能单点故障

git相关

git简介

在这里插入图片描述

git的优势
  • 大部分操作在本地完成,不需要联网
  • 完整性保证(提交每条数据进行hash运算)
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅(1因为用快照,2每个分支只是创建一个指针)
  • 与 Linux 命令全面兼容
git的下载和安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就可以完成该操作

git的结构

在这里插入图片描述

git的命令操作

  • 初始化git本地仓库git init
  • 进行git的签名 git config --global user.name test 如果只是设置该项目的签名删除global参数,还可以使用user.email进行邮箱的设置。
  • 进行git的文件跟踪 git add 文件名,此时将项目下的文件加入到了暂存区
  • 暂存区的加入到本地仓库 git commit -m "提交的注释信息" 文件名 ,如果不加注释信息,此时后弹出vim编辑器进行操作注释信息
  • 查看该仓库下文件和暂存区的状态 git status
  • 查看版本的信息情况 git log oneline 将版本信息显示一行 git reflog可以查看到索引的情况,便于版本信息前进和后退。
  • git版本的前进回退
  1. 基于索引值操作[推荐]
    git reset --hard 索引值 例如git reset --hard b868b26
  2. 使用^符号:只能后退 git reset --hard HEAD^^ 注:一个^表示后退一步,n 个^表示后退 n 步
  3. 使用~符号:只能后退 git reset --hard HEAD~n 注:表示后退 n 步
    后面两种均不常使用
    reset 命令的三个参数对比
    –soft 参数
    仅仅在本地库移动 HEAD 指针 (查看状态时,绿色提示,本地库和暂存区不同步)

在这里插入图片描述
–mixed 参数
在本地库移动 HEAD 指针
重置暂存区
在这里插入图片描述
–hard 参数
在本地库移动 HEAD 指针
重置暂存区
重置工作区
hard最常用,其余作为了解。

  • 删除文件找回
    前提:删除前,文件存在时的状态提交到了本地库。
    进入的文件目录> rm 文件名(rm aaa.txt)删除本地文件>然后提交到暂存区git add aaa.txt >然后提交到本地仓库git commit -m ”delete aaa” aaa.txt (删除完成)
    找回操作:git reset --hard [指针位置]
    删除操作已经提交到本地库:指针位置指向历史记录(回到之前未删除版本)
    删除操作尚未提交到本地库:指针位置使用 HEAD(git reset --hard HEAD),这种操作会重置暂存区和工作区。
  • 比较文件的差异
    git diff 文件名 是将文件工作区暂存区进行比较。git diff [本地库中历史版本] [文件名] 可以用HEAD或者版本索引值不带文件名比较多个文件

git的分支操作

在这里插入图片描述

  • git的分支查看 git branch -v 查看当前的分支
  • git的分支新建git branch 分支名 新建分支
  • git的分支切换git checkout 分支名 切换分支
  • 合并分支
  1. 切换到接受修改的分支上 git checkout [被合并分支名master]
  2. git merge [有新内容分支名]进行分支的合并
  • 冲突的解决
    冲突原因: 2个分支,修改同一文件,同一位置,修改内容不一样时,进入该文件后可以看到添加了特殊的标记
    在这里插入图片描述
  1. 编辑文件,删除特殊符号
  2. 把文件修改到满意的程度,保存退出
  3. git add [文件名]
  4. git commit -m “日志信息”
  5. 此时 commit 一定不能带具体文件名

GitHub相关

  1. 注册GitHub账号
  2. 创建远程仓库
  3. 创建远程仓库地址别名。git remote -v查看当前所有远程地址别名 ,
    git remote add [别名origin] [远程地址]进行远程地址的添加。
  4. 进行响应的项目推送。git push origin 分支名
  5. 进行项目的克隆git clone [远程地址]
    展示效果:
  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名 (git remote -v查看远程库别名)
  • 初始化本地库(就是:git init)

git的pull命令

pull=fetch+merge
git fetch [远程库地址别名origin] [远程分支名master] /抓取下来
git checkout origin/master 切换到链接地址(别名)的master(可查看抓取下来内容
切换回 git checkout master
git merge [远程库地址别名origin/master远程分支名] /*合并
git pull [远程库地址别名] [远程分支名]

以上资料来自b站尚硅谷git

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值