Git操作复习笔记

news2024/11/16 11:30:40

Git操作复习笔记

  • 一、git基础
    • 1.1 安装
    • 1.2 简单的命令
      • 1.2.1 基本工作流程
      • 1.2.3 git使用前配置
      • 1.2.4 git提交步骤
      • 1.2.5 恢复记录
      • 1.2.6 撤销
  • 二、git分支操作
    • 2.1 分支细分
    • 2.2 分支命令
    • 2.3 暂时保存更改
  • 三、github操作
    • 3.1 多人协作开发的流程
    • 3.2 创建远程仓库
    • 3.3 远程仓库克隆到本地仓库
    • 3.4 团队其他成员推送到远程仓库
    • 3.5 使用SSH进行免登录操作

一、git基础

1.1 安装

一路next即可

1.2 简单的命令

git --version 查看git版本

1.2.1 基本工作流程

在这里插入图片描述

开发者每次将修改的文件提交到暂存区,然后再从暂存区提交到git仓库

1.2.3 git使用前配置

在使用git前,需要告诉git提交人,在向git仓库中提交时用到

  • 配置提交人姓名:git config --global user.name 提交人姓名

  • 配置提交人邮箱:git config --global user.email 提交人邮箱

  • 查看git配置信息:git config --list

注意:

  • 如果需要对配置信息进行修改,重复上述命令即可
  • 配置只需要执行一次

1.2.4 git提交步骤

  • git init 初始化git仓库 生成.git文件夹 隐藏文件夹
  • git status 查看文件状态
  • git add 文件列表 追踪文件 提交文件
  • git commmit -m 提交信息 向仓库中提交代码
  • git log 查看提交记录

当使用git init时,文件是红色 表示没有被添加到暂存区中,当使用git add 文件 表示提交文件,此时文件变成绿色,意思是这个文件已经被添加到暂存区中,然后可以使用git commit -m 提交信息(比如 第一次提交)将暂存区中的文件提交到仓库中 使用git log命令查看提交的日志记录

1.2.5 恢复记录

  • git rest --hard commitID

在这里插入图片描述

1.2.6 撤销

  • 使用暂存区的文件覆盖工作目录中的文件:git checkout 文件
  • 将文件从暂存区中删除:git rm --cached 文件
  • 将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git reset --hard commitID

使用场景:

  • 使用暂存区的文件覆盖工作目录中的文件:当开发到一半的时候,发现代码有问题,所以需要恢复代码,那么这时候就要将暂存区的代码拉回到工作目录中,使用 git checkout 文件 恢复

  • 当我们使用一些测试文件的时候,这些测试文件被提交到暂存区中,那么我们不想让这些测试文件被提交到仓库中,那么就需要将这些测试文件删除 使用git rm --cached 文件进行删除,这个时候暂存区中的目标文件就被删除,这时再使用,git status进行查看文件,发现工作目录下的被删除的文件变成红色,说明没有被提交到暂存区中(工作目录下的该文件并没有被删除)

  • git reset --hard commitID 使用这个命令可以指定原来某一个提交版本的文件覆盖现有的工作目录和暂存区,此时的工作目录中的文件恢复为(指定提交的版本)此时的提交记录 只有第一次提交 原有的提交记录全部被删除

在这里插入图片描述

二、git分支操作

emsp;分支就是当前工作目录中代码的一份副本,使用分支,可以让我们从开发主线中分离出来,以免影响开发主线

在这里插入图片描述

2.1 分支细分

  • 主分支(master):第一次向git仓库中提交更新记录时自动产生的一个分支,开发工作都不会在主分支上面进行

在这里插入图片描述

  • 开发分支(develop):作为开发的分支,基于Master分支创建,当在开发分支上面测试的代码没有问题,再将其合并到主分支上面

  • 功能分支(feature):作为开发具体功能的分支,基于开发分支的创建

在这里插入图片描述

功能分支->开发分支->主分支

2.2 分支命令

  • git branch 查看分支
  • git branch 分支名称 创建分支
  • git checkout 分支名称 切换分支
  • git merge 来源分支 合并分支
  • git branch -d 分支名称 删除分支(分支被合并之后才允许删除)(-D 强制删除)

当我们创建一个开发分支develop 在开发分支上创建一个文件,将其添加到暂存区中,但是没有提交到仓库中,此时,我们切换分支到主分支master,可以看到主分支工作目录下有刚刚开发分支下创建的文件,但是,分支与分支之间的工作目录是无关的,所以在切换分支之前需要先将工作目录中的文件提交到仓库中 然后再切换分支

当我们在开发分支测试好代码之后,需要将代码合并到主分支上,使用git merge develop进行合并 之后就可以看到主分支工作目录下有develop目录下的文件

删除分支的时候,一定要先切换到Master分支 然后删除目标分支

2.3 暂时保存更改

 在git中,可以暂时提取分支上所有的改动并且存储,让开发人员得到一个干净的工作副本,临时转向其他工作

使用场景:分支临时切换

  • 存储临时改动:git stash
  • 恢复改动:git stash pop

三、github操作

3.1 多人协作开发的流程

  • A在自己的计算机中创建本地仓库
  • A在github中创建远程仓库
  • A将本地仓库推送到远程仓库 push
  • B克隆远程仓库到本地进行开发 clone
  • B将本地仓库中开发的内容推送到远程仓库 Push
  • A将远程仓库中的最新内容拉去到本地 pull

在这里插入图片描述

在这里插入图片描述

3.2 创建远程仓库

在这里插入图片描述

  • Owner:是仓库的所有者,其实就是github账号
  • Repository name是仓库的名字
  • public:表示仓库是公开的,其他人也可以看到
  • private:表示仓库是私有的,其他人不可以访问

HTTPS/SSH显示的是远程仓库的地址:
在这里插入图片描述

在这里插入图片描述

  • git push远程仓库地址 分支名称
  • git push 远程仓库地址别名 分支名称
  • git push -u 远程仓库地址别名 分支名称 -u 记住推送地址以及分支 下次推送只需要输入git push即可
  • git remote add远程仓库地址别名 远程仓库地址

推送本地仓库:比如:git push 远程仓库地址 master(分支名称)

由于远程仓库的地址比较长,所以为了方便起别名,比如,git remote add origin 远程仓库地址,这里的origin就是远程仓库地址别的别名,那么下一次将本地仓库提交到github的时候,直接git push origin master即可

git push -u 远程仓库地址别名 master 这样做的目的是为了下一次推送的时候直接使用git push命令即可

3.3 远程仓库克隆到本地仓库

克隆远程数据仓库到本地:git clone 仓库地址

3.4 团队其他成员推送到远程仓库

比如团队成员B将远程仓库克隆到本地之后,然后进行了修改,之后需要将代码推送到远程仓库中。

这时候,就需要A程序员将B程序员在github上拉进团队,在settings中点击collaborators

在这里插入图片描述

将程序员B的github账号写入即可,

在这里插入图片描述

邀请程序员B,程序员B Accept即可

在这里插入图片描述

然后程序员B就可以正常推送代码了。

然后A需要将代码的最新版本拉去到本地即可

拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称

3.5 使用SSH进行免登录操作

使用SSH-KEYGEN命令生成密钥,查看生成的公钥和私钥

在这里插入图片描述

公钥是pub结尾的文件,私钥是id_rsa

然后打开公钥,全选并且复制

在这里插入图片描述

然后就可以使用SSH地址实现免登录操作了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【K8S系列】Kubernetes的网络模型

目录 一、k8s的三种网络 二、service网络 2.1 netfilter 2.2 iptables 2.3 clustip 一、k8s的三种网络 Node Network: 与外部网络接口 Service Network: ipvs规则当中的网络、路由提供调度 Pod Network: 节点当中pod的内部网络无法与外界通信 其中&…

【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)

【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)用python解决“清空购物车”、“秒杀商品”问题合集:1、Mac版在pycharm和终端上使用pip显示:pip: command not found Mac2、Mac版在pycharm中*…

毛球修剪器方案开发的工作原理和构成

本文介绍了毛球修剪器方案开发的工作原理;不管是羊毛衫、兔子衫还是普通纤维衫,时间一长都不可避免地会有很多毛球。它看起来脏又乱,穿起来特别不雅观。用除毛器剃毛球可以轻松去除毛衣的原始绒毛,而毛衣将失去其原有的保暖性。 原…

HTML登录页面

第一步:构建HTML框架 简介:本文用最通俗的语言,一步步教会大家CSS构建登录页面。 首先构建HTML框架,包含用户名,密码,记住密码,注册这几个功能。 如果大家HTML不牢固,请看我的这篇博客:https:/…

【数据结构】线性表之顺序表详解

🧑‍💻作者: 情话0.0 📝专栏:《数据结构》 👦个人简介:一名双非研究生的编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 顺…

32、Java——迷你图书管理器(对象+JDBC)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

SpringBoot交友APP项目实战(详细介绍+案例源码) - 10.网关配置

系列文章目录 1. 项目介绍及环境配置 2. 短信验证码登录 3. 用户信息 4. MongoDB 5. 推荐好友列表/MongoDB集群/动态发布与查看 6. 圈子动态/圈子互动 7. 即时通讯(基于第三方API) 8. 附近的人(百度地图APi) 9. 小视频 10.网关配置 文章目录系列文章目录…

【数据结构练习题——查找】

题目:给定如下关键字序列 (36,23,51,6,58,48,39,8,88,76,63,17) (1)按表中顺序建立一棵初始为空的二叉排序树,画出该二叉排序树。 (2)求上述二叉排序树中等…

ikun网站成名录: HTML 中的常用标签用法,从0到1创建一个ikun简介

常见标签(以下均省略了< >) 1.标题标签 h1~h6 2.段落&#xff0c;换行标签 由于html的特性&#xff0c;我们在语句中添加换行&#xff0c;多个空格都是没办法对我们的文本分段落的。如图 所以改用这个标签便可分段了&#xff1a; 用于我们文本可能需要手动换行&#x…

Hadoop高手之路2—Hadoop集群的基础设置

文章目录Hadoop集群的基础设置一、虚拟机软件的安装二、创建虚拟机&#xff0c;安装CentOS1.下载CentOS2.创建虚拟机3.编辑虚拟机设置4.安装centos7.9mini版本5.启动centos&#xff0c;并进行登录6. 退出root登录&#xff0c;用user1登录三、CentOS网络配置1. 查看本地windows主…

图像格式RGB-HSV-YUV

文章目录一、RGB色彩空间二、HSV 色彩空间三、YUV 色彩空间四、色彩空间的转换待更新中FPGA实现RGB与HSV的转换 一、RGB色彩空间 RGB 是最常用于显示器的色彩空间&#xff0c;R(red)是红色通道&#xff0c;G(green)是绿色&#xff0c;B(blue)是蓝色通道。这三种颜色以不同的量…

(附源码)计算机毕业设计SSM教师教学质量评价系统

&#xff08;附源码&#xff09;计算机毕业设计SSM教师教学质量评价系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

【数据结构与算法】手写HashMap的模拟实现

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【数据结构与算法】 ✈️✈️本篇内容:手写HashMap的模拟实现&#xff01; &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;Java数据结构代码存放&…

目标检测 YOLOv5 - Rockchip rknn模型的测试 包括精度,召回率,mAP等详细信息

目标检测 YOLOv5 - Rockchip rknn模型的测试 包括精度&#xff0c;召回率&#xff0c;mAP等详细信息 flyfish 该测试是使用了自定义128张图片的测试结果&#xff0c;如果采用官网的coco128图片数据会比下列数值更好看。 以下是对比结果&#xff0c;pt模型的测试结果和rknn模型…

进程互斥的实现方法

文章目录进程互斥的软件实现方法单标志法双标志先检查法双标志后检查法Peterson算法img硬件实现进程互斥中断屏蔽方法TestAndSet指令Swap指令进程互斥的软件实现方法 软件实现方法的思想&#xff1a;在进入区设置并检查一些标志 来标明是否有进程在临界区中,若已有进程在临界区…

MyBatis

最近新开了个项目&#xff0c;记录第一次新开项目做得一些步骤&#xff0c;整合mybatis就是重要的一步&#xff0c;这里我演示了依赖的添加&#xff0c;逆向文件的生成。 1.整合mybatis 1.1基础配置 先添加依赖&#xff0c;再增加配置文件 dependencies <!--Spring Boot …

Java 开发工具 Eclipse

目录 一、Eclipse 概述 二、Eclipse 安装与汉化 三、创建 Java 项目 四、创建 Java 类 五、运行 Java 程序 六、Eclipse 调试程序 &#xff08;方法一&#xff09; 七、Eclipse 调试程序 &#xff08;方法二&#xff09; 工欲善其事&#xff0c;必先利…

Linux文件查找find

目录 前言 查找命令 命令演示 1.which&#xff1a;命令查找 2.locate命令 3.find命令&#xff08;主要使用这个命令进行查找文件&#xff09; 1&#xff09;语法 2&#xff09;find的用法介绍 按文件名查找 手动写入指定大小数据到文件内&#xff0c;介绍一下dd命令。…

【兄弟反目成仇系列】:我只是写了一个爆炸信息窗口脚本,好兄弟追了我几条街~

文章目录✨ 真的来咯~&#x1f4a5;爆炸信息窗口&#x1f4a1;设计思路&#x1f511;模块准备⚠️删除好友警告⚠️源代码❓这时你可能会问&#x1f440; 批量获取表情包&#x1f6c0;结束语专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Djan…

高德地图 API,点击地图标记获取自定义标记 (Marker) 中的信息

高德地图 API&#xff0c;点击地图标记获取自定义标记 (Marker) 中的信息 通过 高德地图 JS Web 添加自定义图标&#xff0c;自定义窗口标记 已经能在地图中正常添加自定义标记了 这篇文章讲讲点击标记时&#xff0c;如何从自定义标记中获取你需要的信息&#xff0c;如何预置一…