Git命令详细介绍

1.Git结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A7TdWBin-1613892875235)(https://note.youdao.com/yws/api/personal/file/WEBa5c6cd91037278c6cf8685e41639da35?method=download&shareKey=f733af49501ec61d2667f1ea2f4f53d1)]

2.Git和代码托管中心
  • 局域网环境下
    • GitLab服务器
  • 外网环境下
    • GitHub
    • 码云
3.Git本地库初始化
git init
4.设置签名
  • 项目级别/仓库级别:仅在当前本地范围内有效

    • git config user.name Allen

    • git config user.email yx_endeavor@163.com

    • 信息保存位置 ./config 文件
      在这里插入图片描述

  • 系统用户级别:登录当前操作系统的用户范围

    • git config --global user.name Allen

    • git config --global user.email yx_endeavor@163.com

    • 信息保存位置 宿主目录 cd ~ /.gitconfig 文件
      在这里插入图片描述

  • 级别优先级

    • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别
    • 如果只有系统用户级别签名,就以系统用户级别签名为准
5.基本操作
5.1.状态查看操作
git status #查看工作区、暂存区状态
5.2.添加操作
git add [filename] #将工作区的 "新建/修改" 添加到暂存区
5.3.提交操作
git commit -m "commit message" [filename] #将暂存区的内容提交到本地库
5.4.查看历史记录操作
git log 
# 多屏控制显示方式:
# 空格向下翻页
# b向上翻页
# q退出

在这里插入图片描述

git log --pretty=oneline

在这里插入图片描述

git log --oneline

在这里插入图片描述

git reflog

在这里插入图片描述

HEAD@{移动到当前版本需要步数}

5.5.前进后退
  • 本质:
    在这里插入图片描述

  • 基于索引值的操作(推荐):

    • git reset --hard [局部索引值]
    • git reset --hard c820814
  • 使用’ ^’ 符号代表:只能后退,几个 ‘^’ 代表退几步

    • git reset --hard HEAD^
  • 使用~符号:只能后退

    • git reset --hard HEAD~n
    • n表示后退的步数
5.6.reset 命令的三个参数对比
  • –soft参数:
  • 仅仅在本地库移动HEAD指针
  • –mixed参数:
  • 在本地库移动HEAD指针
  • 重置暂存区
  • –hard参数
  • 在本地库移动HEAD指针
  • 重置暂存区
  • 重置工作区
57.删除文件并找回
  • 前提:删除前,文件存在时的状态提交到了本地库

  • 操作:git reset --hard[指针位置]

    • 删除操作已经提交到本地库:指针位置指向历史记录;
    • 删除操作尚未提交到本地库:指针位置使用HEAD
      在这里插入图片描述
5.8.比较稳健差异
  • git diff [文件名]
    # 将工作区中的文件和暂存区进行比较
    
  • git diff [本地库历史版本] [文件名]
    # 将工作区中的文件与本地库历史记录比较
    
  • 不带文件名表示比较多个文件

5.9.命令帮助
6.分支管理
6.1.什么是分支?

在版本控制过程中,使用多条线同时推进多个任务.

6.2.分支操作
  • 创建分支

    git branch [分支名]

  • 查看分支

    git branch -v

  • 切换分支

    git checkout [分支名]

  • 合并分支

    • 第一步:切换到接受修改的分支(被合并,增加新内容)上,git checkout [分支名]
    • 第二部:执行merge命令 git merge [分支名]
  • 解决冲突

    • 冲突的表现
      在这里插入图片描述

    • 冲突的解决:

      • 第一步:编辑文件,删除特殊符号;
      • 第二步:把文件修改到满意程度,保存退出;
      • 第三步:git add [文件名]
      • 第四部:git commit -m “日志信息”;
        • 注意:此时commit不能带文件名
7.Github
7.1.在本地库创建远程库地址的别名
#查看当前所有远程库地址别名
git remote -v
#改别名
git remote add [别名] [远程库地址]
7.2.推送
#格式
git push [别名] [分支名]
#举例
git push origin master

在这里插入图片描述

7.3.克隆

命令:

git clone [远程地址]

三个效果:

  • 完整的把远程库下载到本地
  • 创建origin远程地址别名
  • 初始化本地库
7.4.拉取
  • pull = fetch + merge
  • git fetch [远程库地址别名] {远程分支别名]
  • git merge [远程库地址别名/远程分支别名]
7.5.解决冲突

要点:

  • 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取;
  • 拉取下来后如果进入冲突状态,则按照 “分支冲突解决” 操作解决即可。
8.SSH登录
  • 进入当前用户的家目录

    cd ~
    
  • 删除.ssh目录

    rm -rf .ssh
    
  • 运行命令生成.ssh密钥目录

    ssh-keygen -t rsa -C [Github邮箱] #注意:C是大写的
    
  • 进入.ssh 目录查看文件列表

  • 查看 id_rsa.pub文件内容

  • 复制 id_rsa.pub 文件内容,登录GitHub,点击用户头像→Setting→SSH and GPGkeys

  • New SSH key

  • 输入复制的密钥信息

  • 回到 git bash 创建远程库别名

    git remote add origin_ssh [远程库地址 ssh] #git@github.com:Allen-HDs/huashan.git
    
  • 推送文件进行测试

    git push origin_ssh master
    

    在这里插入图片描述

9.Git工作流
9.1.分类
  • 集中式工作流:

    像SVN一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到Master这个分支上。
    在这里插入图片描述

  • GItFlow工作流

    GitFlow工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更为流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。
    在这里插入图片描述

  • Forking工作流

Forking工作流是在GitFlow基础上,充分利用了Git的Fork和pull request的功能,以达到代码的审核的目的。更适合安全可靠地管理大团队的开发者,而且能接受不信任贡献者的提交。
在这里插入图片描述

9.2GitFlow工作流

在这里插入图片描述

在这里插入图片描述

10.Git遇到的错误:

clone时遇到这个error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

问题和解决方法都包含在图里面了,记录一下。
在这里插入图片描述

11.GitHUb骚操作
11.1 in 关键词限制搜索范围

公式:xxx关键词 in:name 或 description 或 readme

  • xxx in : name 项目名包含 xxx 的
  • xxx in : description 项目描述包含 xxx 的
  • xxx in : readme 项目的readme文件中包含xxx的
  • 组合使用: xxx in : name,readme
11.2 stars 或 fork数量关键词去查找

公式:xxx关键词 stars 通配符 :> 或者 :>=

区间范围数字 数字1…数字2
在这里插入图片描述

组合使用:springboot forks:100…200 stars:80…100

11.3 awesome 加强搜索

公式:awesome 关键词

awesome系列一般是用来收集学习、工具、书籍类相关的项目

例如:awesome redis

11.4 高亮显示某一行或某多行代码

在这里插入图片描述

11.5 项目内搜索

英文 t

11.6 搜索某个地区内的大佬

公式:location:地区 language:语言

搜索合肥的Java方向的用户:location:hefei language:java

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值