day10Git

news2024/12/25 9:05:12

1.Git介绍

1.1版本控制(理解)

无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况

1.2开发中存在的问题(理解)

  • 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间,电脑突然蓝屏,硬盘光荣下岗!

几个月来的努力付之东流
在这里插入图片描述

  • 老王需要在项目中加入一个很复杂的功能,一边尝试,一边修改代码,就这样摸索了一个星期。
    可是这被改得面目全非的代码已经回不到从前了。
    在这里插入图片描述

  • 小明和老王先后从文件服务器上下载了同一个文件

在这里插入图片描述

  • 因项目中Bug过多,导致项目进度拖延,项目经理老徐因此被骂,但不清楚Bug是手下哪一个程序员写的
    在这里插入图片描述

  • 开发中要解决的问题

    • 代码备份
    • 版本控制
    • 协同工作
    • 责任追溯

1.3SVN版本控制(理解)

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,
所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

  • 服务器单点故障

    将会导致所有人员无法工作

  • 而服务器硬盘损坏

    这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的。
    在这里插入图片描述

1.4Git版本控制(理解)

Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发
而开发了自己的开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库。

  • 每一个客户端都保存了完整的历史记录

    服务器的故障,都可以通过客户端的记录得以恢复。
    在这里插入图片描述

2.Git下载和安装

2.1Git的下载(应用)

官网下载地址:https://git-scm.com/downloads
在这里插入图片描述

2.2Git的安装(应用)

  1. 双击安装包,进入安装向导界面
    在这里插入图片描述

  2. 指定安装目录
    在这里插入图片描述

  3. 一路next下一步
    在这里插入图片描述

  4. 等待安装
    在这里插入图片描述

  5. 安装完成
    在这里插入图片描述

  6. 安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。
    在这里插入图片描述

  7. 运行Git命令客户端,使用git --version 命令,可以查看git版本
    在这里插入图片描述

2.3TortoiseGit的安装(应用)

  1. 双击安装包,进入安装向导界面
    在这里插入图片描述

  2. 一路next下一步

  3. 指定安装目录

  4. 安装

  5. 配置

  6. 安装TortoiseGit中文语言包,一路next即可

  7. 配置TortoiseGit中文语言

3.Git操作入门

3.1Git基本工作流程(理解)

本地仓库
在这里插入图片描述

3.2Git命令行操作(应用)

  • git常用命令

    命令作用
    git init初始化,创建 git 仓库
    git status查看 git 状态 (文件是否进行了添加、提交操作)
    git add 文件名添加,将指定文件添加到暂存区
    git commit -m ‘提交信息’提交,将暂存区文件提交到历史仓库
    git log查看日志( git 提交的历史日志)
  • 操作步骤

    1. 创建工作目录、初始化本地 git 仓库
      在这里插入图片描述

    2. 新建一个 test.txt 文件(暂不执行添加操作)

    3. 使用 status 命令,查看状态
      在这里插入图片描述

    4. 使用 add 命令添加,并查看状态

    5. 使用 commit 命令,提交到本地历史仓库

    6. 使用 log 命令,查看日志

    7. 修改 test.txt 文件

    8. 添加并提交,查看日志

3.3Git图形化工具操作(理解)

  1. 创建工作目录、初始化本地 git 仓库

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 选中文件右键,选择TortoiseGit,之后选择添加

  4. 空白处右键,Git提交,提交到本地历史仓库

  5. 空白处右键,TortoiseGit,显示日志,可以产看日志信息

  6. 修改 test.txt 文件

  7. 添加并提交,查看日志

4.Git版本管理

4.1历史版本切换(理解)

在这里插入图片描述

  • 准备动作

    1. 查看 my_project 的 log 日志
      git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)
    2. 增加一次新的修改记录
  • 需求: 将代码切换到第二次修改的版本

    指令:git reset --hard 版本唯一索引值

4.2分支管理介绍(理解)

  • 分支

    • 由每次提交的代码,串成的一条时间线
    • 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
  • 分支的使用场景

    1. 周期较长的模块开发
      假设你准备开发一个新功能,但是需要一个月才能完成
      第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug
      那现在就需要放下手中的新功能,去修复Bug
      但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。
    2. 尝试性的模块开发
      业务人员给我们提出了一个需求,经过我们的思考和分析
      该需求应该可以使用技术手段进行实现。
      但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。
  • 分支工作流程

    • Master: 指向提交的代码版本

    • Header: 指向当前所使用的的分支

在这里插入图片描述

4.3分支管理操作(应用)

  • 创建和切换

    创建命令:git branch 分支名
    切换命令:git checkout 分支名

  • 新分支添加文件

    查看文件命令:ls

    总结:不同分支之间的关系是平行的关系,不会相互影响

  • 合并分支

    合并命令:git merge 分支名

  • 删除分支

    删除命令:git branch -d 分支名

  • 查看分支列表

    查看命令:git branch

5.远程仓库

5.1远程仓库工作流程(理解)

在这里插入图片描述

5.2远程仓库平台介绍(理解)

  • GitHub

    域名:https://github.com
    介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站

    ​ 各类好玩有趣的开源项目,只有想不到,没有找不到。

  • 码云

    域名:https://gitee.com
    介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库

5.3码云的注册(应用)

在这里插入图片描述

5.4先有本地项目,远程为空(应用)

  • 步骤

    1. 创建本地仓库
    2. 创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
    3. 创建远程仓库
    4. 推送到远程仓库
  • 创建远程仓库

  • 生成SSH公钥

    • 推送代码之前,需要先配置SSH公钥

    • 生成SSH公钥步骤

      1. 设置Git账户

        • git config user.name(查看git账户)
        • git config user.email(查看git邮箱)
        • git config --global user.name “账户名”(设置全局账户名)
        • git config --global user.email “邮箱”(设置全局邮箱)
        • cd ~/.ssh(查看是否生成过SSH公钥)

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9MhSyakU-1672301325244)(.\img\53_配置SSH公钥.png)]

      2. 生成SSH公钥

        • 生成命令: ssh-keygen –t rsa –C “邮箱” ( 注意:这里需要敲3次回车)
        • 查看命令: cat ~/.ssh/id-rsa.pub
      3. 设置账户公钥

      4. 公钥测试

        • 命令: ssh -T git@gitee.com
  • 推送到远程仓库

  • 步骤

    1. 为远程仓库的URL(网址),自定义仓库名称
    2. 推送
  • 命令
    git remote add 远程名称 远程仓库URL
    git push -u 仓库名称 分支名

5.5先有远程仓库,本地为空(应用)

  • 步骤
    1. 将远程仓库的代码,克隆到本地仓库
      克隆命令:git clone 仓库地址
    2. 创建新文件,添加并提交到本地仓库
    3. 推送至远程仓库
    4. 项目拉取更新
      拉取命令:git pull 远程仓库名 分支名

5.6代码冲突(应用)

  • 产生原因:

    两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突
    在这里插入图片描述

  • 如何解决冲突

    <<<<<<<和>>>>>>>中间的内容,就是冲突部分

    1. 修改冲突行,保存,即可解决冲突。
    2. 重新add冲突文件并commit到本地仓库,重新push到远程

6.IDEA集成Git

6.1IDEA中配置Git(应用)

  1. File -> Settings
    在这里插入图片描述

  2. Version Control -> Git -> 指定git.exe存放目录

  3. 点击Test测试

6.2创建本地仓库(应用)

  1. VCS->Import into Version Control->Create Git Repository

  2. 选择工程所在的目录,这样就创建好本地仓库了

  3. 点击git后边的对勾,将当前项目代码提交到本地仓库

    注意: 项目中的配置文件不需要提交到本地仓库中,提交时,忽略掉即可

6.3版本切换(应用)

  • 方式一: 控制台Version Control->Log->Reset Current Branch…->Reset

    这种切换的特点是会抛弃原来的提交记录

  • 方式二:控制台Version Control->Log->Revert Commit->Merge->处理代码->commit

    这种切换的特点是会当成一个新的提交记录,之前的提交记录也都保留

6.4分支管理(应用)

  • 创建分支

    VCS->Git->Branches->New Branch->给分支起名字->ok

  • 切换分支

    idea右下角Git->选择要切换的分支->checkout

  • 合并分支

    VCS->Git->Merge changes->选择要合并的分支->merge

    处理分支中的代码

  • 删除分支

    idea右下角->选中要删除的分支->Delete

6.5本地仓库推送到远程仓库(应用)

  1. VCS->Git->Push->点击master Define remote

  2. 将远程仓库的路径复制过来->Push

6.6远程仓库克隆到本地仓库(应用)

File->Close Project->Checkout from Version Control->Git->指定远程仓库的路径->指定本地存放的路径->clone

在这里插入图片描述

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

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

相关文章

HTC FOCUS 3连接FOHEART H1数据手套

本教程介绍使用H1数据手套与HTC腕带式追踪器驱动VR中的虚拟手运动&#xff0c;实现手部的追踪及定位。 需要准备的硬件&#xff1a; 1、FOHEART H1数据手套 2、HTC VIVE Focus 3一体机 3、HTC VIVE 腕带式追踪器 01 一体机连接腕带追踪器 首先断开Focus3的手柄&#x…

【JavaWeb】Mybatis深度进阶练习

学习目标 能够使用映射配置文件实现CRUD操作能够使用注解实现CRUD操作 文章目录1、配置文件实现CRUD1.1 环境准备1.2 查询所有数据1.2.1 编写接口方法1.2.2 编写SQL语句1.2.3 编写测试方法1.2.4 起别名解决上述问题1.2.5 使用resultMap解决上述问题1.2.6 小结1.3 查询详情1.3.1…

(一) 初识python

1. python的特点&#xff1a; 可读性强 可读性远比听上去重要的多得多。一个程序会被反复的修改&#xff0c;可读性意味这让你可以在更短时间内学习和记忆&#xff0c;直接提高生产率。高效、简洁 研究证明&#xff0c;程序员每天可编写的有效代码是有限的。完成同样功能只用一…

浙大MBA复试经验分享——复试备考流程及要点提醒

最近身边有很多小伙伴都在咨询关于复试的问题&#xff0c;趁着今天有空把我的复试准备过程按照时间线梳理出来分享给大家&#xff0c;希望可以帮助到大家。 联考结束后&#xff0c;趁着考完印象还深刻&#xff0c;我们首先要做的就是估分&#xff08;辅导班或者小红书、知…

【06】概率图推断之变量消除算法

概率图推断之变量消除算法 文章目录说明性示例消除变量因子因子运算排序变量消除算法举例证据变量消除的时间复杂度选择变量消除顺序接下来&#xff0c;我们将注意力转向图模型中的推断问题。 给定概率模型&#xff08;如贝叶斯网络或马尔可夫随机场&#xff09;&#xff0c;…

开个脑洞,带你写一个自己的极狐GitLab CI Runner

极狐GitLab Runner 是极狐GitLab CI/CD 执行的利器&#xff0c;能够帮助完成 CI/CD Pipeline Job 的执行。 目前极狐GitLab Runner 是一个开源项目&#xff0c;以 Golang 编写。 极狐Gitlab 有个不错的特性&#xff0c;就是你可以使用自己的极狐Gitlab CI Runner。可是&#xf…

Oracle 单实例如何开机自启动

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路&#xff08;ID: JiekeXu_IT&#xff09;如需转载请联系授权 | (个人微信 ID&#xff1a;JiekeXu_DBA)大家好&#xff0c;我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Oracle 单实例如何开机自启动&#xff0c;欢迎点击…

盘点JAVA程序猿必备的webserver

作为java工程师&#xff0c;除了必备的java编程能力&#xff0c;我们还需要些什么呢&#xff1f; 一般而言&#xff0c;要从工程师进化为构架师&#xff0c;一个合格的java工作者需要掌握一些关于构架的知识&#xff0c; 比如互联网的结构&#xff0c;服务器的建设&#xff0c…

PhotoShop入门

PhotoShop入门 零、文章目录 文章地址 个人博客-CSDN地址&#xff1a;https://blog.csdn.net/liyou123456789个人博客-GiteePages&#xff1a;https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee&#xff1a;https://gitee.com/bluecusliyou/TechLearnGithub&am…

JAVA结构、循环语句

一、 if选择结构 代码示例&#xff1a; int num 1;if (num 1) {System.out.println("壹");} else if (num 2) {System.out.println("贰");} else if (num 3) {System.out.println("参");}输出&#xff1a; 壹 二、switch结构 1.switch 会根…

HNU编译原理实验四cminus_compiler-2022-fall

前言&#xff1a;原本想认认真真把这个实验给完成的&#xff0c;但是当时时间太赶了&#xff0c;一周要做三个实验&#xff0c;所以这次实验基本都是抄的了&#xff0c;有些地方也抄的不明不白&#xff0c;不过懂不懂这个对课程学习的帮助并不是很大&#xff0c;毕竟这个实验的…

vue 弹窗 惯性滚动 加速滚动

惯性滚动组件 新建文件 components/scroll-viwe <template><div v-if"visiable"><div class"mapbox-result-scroll-hidden"><div class"mapbox-result-wrap" ref"resultWrap"><div class"mapbox-resu…

服务了可口可乐、海底捞、某头部商业银行,我有这些体会

我非常喜欢巴西队的内马尔&#xff0c;他曾说&#xff1a;“你可能会看到我一秒钟、一分钟、一天不开心&#xff0c;但第二天你会看到我的笑脸。” 在 Authing 工作两年多了&#xff0c;在这期间&#xff0c;我为可口可乐、海底捞、某头部商业银行等客户做了交付&#xff0c;在…

jq实现倒计时功能

效果如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>jq实现…

10 IO实例

IO 1 流 流可以认为是一条通道&#xff0c;它可以将数据从源端传送到目的地。 例如将程序中的某些数据写入文件&#xff0c;或将文件中的某些数据读入程序。 Java中数据的操作是以“流”的方式进行。 Java中的“流”是一个具体的Java对象&#xff0c;该对象提供一些方法进行…

组件的概念

文章目录组件&#xff1f;从UI层面看组件化组件&#xff1f; 等下&#xff0c;你有没有留意到我说了一个很关键的词&#xff0c;叫组件。组件&#xff1f;直观的理解组件是一个什么东西&#xff1f;可拼接&#xff0c;可组合&#xff0c;搭积木&#xff0c;乐高积木? 对&…

Springboot定时任务调度的实现原理

前言 源码的世界是一片汪洋大海&#xff0c;springboot的源码更是如此&#xff0c;虽然用的时候似乎很简单&#xff0c;然而正是因为其内部的设计巧妙、复杂&#xff0c;才造就了其使用上的简单易上手。罗马不是一天建起来的&#xff0c;要完全理解它也并非一时的事&#xff0c…

webdriver的尝试:一 【webdriver自动打开浏览器与页面】

文章目录Webdriver尝试使用步骤1&#xff1a;安装类库2&#xff1a;安装驱动3&#xff1a;配置环境3&#xff1a;编写脚本4&#xff1a;执行脚本Webdriver 网站地址 Selenium webdriver 简单介绍&#xff1a;webdriver是一个api和协议。支持多种语言。主要功能&#xff0c;通…

大米新闻微信小程序和Springboot新闻管理系统项目源码

介绍 本项目分为大米news小程序端和springboot新闻管理系统后台项目。小程序主要用来新闻展示&#xff0c;后台管理系统用于提供相关新闻API。 项目源码 参考&#xff1a;https://www.bilibili.com/video/BV1TD4y1j7g3/?spm_id_from333.337.search-card.all.click&vd_s…

day08 常用API

1.API 1.1 API概述-帮助文档的使用 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&a…