当前位置: 首页 > news >正文

27_GitGitHub

一、git和github

  • git和github是两个内容
    • 就像java和javascript
    • 就像周杰和周杰伦
  • 掌握几个概念
    • 本地: 我自己的终端
    • 远程: 在网络另一头的终端
    • 仓库: 被git管理的文件夹
  • git
    • 官方: 分布式的版本管理工具
    • 我们平时在写代码的时候
      • 代码经常要修改
      • 如果不保存多个版本的文件夹,一旦出bug,就回不去正常版本了
      • 如果保存多个版本的文件夹,不知道每个版本修改的内容
    • git就是帮我们管理我们代码的版本的工具
      • 可以记录我们所有的版本信息
      • 既然是工具,就要先安装才能使用
  • github
    • 是一个网站的名称
    • 里面注册了很多的开发人员,并且是全世界的开发人员
    • 这个网站可以让开发人员把代码上传上去
    • 你可以在上面下载被人上传的代码
    • 也可以把你写好的插件/库/项目上传上去,给别人用
    • github网站只接收git上传的代码,所以名字有git这几个字
    • 是一个世界级的网站,英文的,服务器在国外
    • 国内也有很多这样的网站,比较有名的是:码云
    • 码云:https://gitee.com

二、安装git

  • 安装git
    • git是一个工具,所以需要安装才能使用
    • 官网下载:https://git-scm.com
    • 下载完成以后,双击Git-2.22.0-64-bit.exe
    • 一直next,就可以了
  • 检测git
    • 在命令行输入: git --version
    • 出现版本号就是安装成功了
  • 使用git
    • 方法1:
      • 可以在任意位置鼠标右键
      • 选择git bash here,就可以打开git操作的命令行工具
    • 方法2
      • 可以在任意位置打开cmd
      • 在命令行可以进行git操作
    • 一般使用方法1,方法1彩色的好看,但其实两种方法都可以

三、git使用流程

  • 自报家门 – 一个终端做一次就可以了
    • 打开命令行工具
    • 输入:
      • 第一个指令: git config --global user.name “你的开发名”
      • 第二个指令: git config --global user.email “你的工作邮箱”
    • 检测是否配置成功:
      • 指令: git config --list
  • git初始化
    • 就是把我们的项目文件交给git管理
    • 在项目根目录运行
    • 指令:git init
    • 在项目目录中就多了一个隐藏的文件夹.git
    • 里面会记录你的项目的所有版本信息
    • 不能删除,删除以后你的版本信息就丢失了
    • 我们的项目文件夹被分成了三个区域
      • 工作区:就是我们能看见的写代码的地方
      • 暂存区:就是形成一个历史版本
      • 本地仓库: 历史版本的存放区域
    • 代码从本地上传到远程: 工作区=>暂存区=>本地仓库=>远程仓库
    • 代码从远程下载到本地: 远程仓库=>本地仓库

四、从工作区添加到暂存区

  • 存储到暂存区的不是文件,是文件的变化
  • 指令
    • git add 要放到暂存区的文件路径
    • git add 要放到暂存区的文件夹路径
    • git add --all 把所有文件放到暂存区可简写: git add .
  • 查看git管理的文件的状态
    • 指令: git status
    • git不能管理空文件夹

五、从暂存区到本地仓库

把暂存区内容放到本地仓库形成一个历史版本

  • 指令: git commit -m “你的版本描述信息”

查看历史版本

  • 查看当前版本之前的历史版本

    • 指令: git log
    • 显示版本信息:
      commit 2669935eca09795ce6543cddde61a465ab532300
      Author: aaa 123456@qq.com
      Date: Thu Apr 28 10:51:49 2022 +0800
      ​ first banben
    • 版本号: 2669935eca09795ce6543cddde61a465ab532300
    • 作者信息: aaa 123456@qq.com
    • 日期:Thu Apr 28 10:51:49 2022 +0800
    • 版本描述信息: first banben
  • 查看所有的历史版本

    • 指令: git reflog
    • 显示版本信息
      e09b6ed (HEAD -> master) HEAD@{0}: commit: third 3333
      4a90ccc HEAD@{1}: commit: second banben-swiper
      2669935 HEAD@{2}: commit (initial): first banben
    • 版本号前几位:e09b6ed
    • HEAD: 当前版本
    • HEAD@{n}: 当前版本的前n个版本
  • 版本回退

    • 指令: git reset --hard 版本号

      • 回退到指定版本号
    • 指令: git reset --hard Head

      • 回退到最新版本
    • 指令: git reset --hard Head^

      • 回退到指定版本的前一个版本,几个^就是前几个版本

六、远程仓库

  • 把代码从本地仓库上传到远程仓库
    • 指令:给远程仓库地址一个别名
      • git remote add 别名 远程仓库地址
    • 指令:把本地仓库上传远程仓库
      • git push -u 远程仓库地址或者别名 分支名
    • 远程仓库地址或者别名:
      • 例如: https://gitee.com/xingbiao7676/sz2202first.git
    • 分支名
      • 仓库默认都有一个主分支:master
  • 把代码从远程仓库下载到本地仓库
    • 情况1:以前没有下载过
      • git clone 远程仓库地址
    • 情况2:以前下载过
      • 拉取远程版本并合并到本地版本
      • git pull 远程仓库地址或者别名

七、分支操作

  • 创建分支
    + 指令:以当前版本为副本,重建一个分支
    + git branch 分支名
  • 查看分支
    • 指令:查看当前项目有哪些分支
    • git branch
    • 输出中带*表示当前分支
  • 切换分支
    • 指令:切换到你要操作的那个分支
      == git checkout 分支名
    • 删除分支
      • 指令:删除本地分支
      • git branch -d 分支名
    • 合并分支
      • 指令:把其他分支合并到当前分支
      • git merge 要合并的分支名 -m ‘版本描述信息’
    • 上传到远程分支
      • 指令:把本地分支上传到远程分支
      • git push -u 远程仓库地址或者别名 本地分支名:远程分支名
      • 如果只写本地分支名,那远程分支默认同名
    • 删除远程分支
      • 指令:把远程的分支删除
      • git push --delete 远程仓库地址或者别名 远程分支名

八、git的忽略文件

如果一个项目里面有一些文件和文件夹不需要git管理

  • 那么就可以在项目根目录书写一个git的忽略文件
  • 文件名固定是: .gitignore
  • 在里面可以写你要忽略的文件或者文件夹路径

九、 删除暂存区文件

如果想删除暂存区文件

  • 指令: git rm --cached 文件路径

十、替换前一个版本

用现在提交的版本替换前一个版本

  • 指令:git commit --amend -m “新版本描述信息”

十一、分支操作

  • 创建分支:
    • git branch 要创建的本地分支名
  • 切换分支:
    • git checkout 要切换的本地分支名
  • 创建并切换分支 = 创建分支+切换分支
    • git checkout -b 本地分支名

十二、pull和fetch的区别

  • 拉取分支并合并到当前分支
    • git pull 远程仓库地址或者别名 分支名
    • pull = fetch + merge
  • 拉取远程分支
    • git fetch 远程仓库地址或者别名 分支名

十三、后悔操作

  • 查看工作区和暂存区文件的区别
    • git diff
  • 查看暂存区和本地仓库文件的区别
    • git diff --cached
  • 用最新版本的内容恢复到暂存区,不影响工作区
    • git reset HEAD – 文件路径
  • 用暂存区内容来回复工作区
    • git checkout – 文件路径

相关文章:

  • 微信公众号在线查题功能系统使用
  • WPS JS宏示例-批量添加链接
  • Java核心——面向对象编程(上)包-继承-多态
  • Ambari自动部署Hadoop集群实战
  • 33.0、C语言——C语言预处理(1) - 翻译环境详解
  • java-php-python-springboot网上订餐系统计算机毕业设计
  • 【VUE项目实战】66、上线-通过node创建Web服务器
  • About 9.25 This Week
  • 三、基本命令
  • MySQL中select ... for update会锁表还是锁行?
  • 计算机毕业设计选题 SSM大学生企业推荐系统(含源码+论文)
  • 【Java设计模式 思想原则重构】设计思想、设计原则、重构总结
  • js逆向-逆向基础
  • 【前端】【探究】HTML - input类型为file时如何实现自定义文本以更好的美化
  • 二叉树的dp问题和Morris遍历
  • “大数据应用场景”之隔壁老王(连载四)
  • 0基础学习移动端适配
  • AHK 中 = 和 == 等比较运算符的用法
  • bearychat的java client
  • express.js的介绍及使用
  • KMP算法及优化
  • Linux链接文件
  • python docx文档转html页面
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SpringBoot 实战 (三) | 配置文件详解
  • 包装类对象
  • 汉诺塔算法
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 配置 PM2 实现代码自动发布
  • 前嗅ForeSpider教程:创建模板
  • 十年未变!安全,谁之责?(下)
  • 想写好前端,先练好内功
  • 小而合理的前端理论:rscss和rsjs
  • 阿里云ACE认证之理解CDN技术
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • $forceUpdate()函数
  • (1)虚拟机的安装与使用,linux系统安装
  • (day 12)JavaScript学习笔记(数组3)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Python第六天)文件处理
  • (zhuan) 一些RL的文献(及笔记)
  • (初研) Sentence-embedding fine-tune notebook
  • (二开)Flink 修改源码拓展 SQL 语法
  • (四)linux文件内容查看
  • (一) springboot详细介绍
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net 应用中使用dot trace进行性能诊断
  • .net经典笔试题
  • .Net中的设计模式——Factory Method模式
  • ??eclipse的安装配置问题!??