涨薪技术|持续集成Git使用详解

news2025/3/7 2:31:39

Git介绍

Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

Git 的特点:

  • 分支更快、更容易。

  • 支持离线工作;本地提交可以稍后提交到服务器上。

  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。

  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。

  • 没有哪一个 Git 仓库会天生比其他仓库更重要。

01Git安装与配置

1)Windows上安装Git

下载地址:https://git-scm.com/download/win最新版本为:Git-2.27.0-64-bit.exe安装步骤:1.双击 Git-2.27.0-64-bit.exe 开始安装;2.一直点击next,直到出现install,点击install,安装完成后点击finish;3.检查git是否安装OKcmd -> git --versionC:\Users\Foreknew>git --versiongit version 2.27.0.windows.1

2)Git配置

由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,在命令行输入下列的命令

图片

注意:git config --global参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱,根据个人情况设置。

02Git基本用法

1、Git工作流程

图片

2、Git命令

2.1)分支操作​​​​​​​
1. git branch 创建分支2. git checkout -b 创建并切换到新建的分支上3. git checkout 切换分支4. git branch 查看分支列表5. git branch -v 查看所有分支的最后一次操作6. git branch -vv 查看当前分支7. git brabch -b 分支名 origin/分支名 创建远程分支到本地8. git branch --merged 查看别的分支和当前分支合并过的分支9. git branch --no-merged 查看未与当前分支合并的分支10. git branch -d 分支名 删除本地分支11. git branch -D 分支名 强行删除分支12. git branch origin :分支名 删除远处仓库分支13. git merge 分支名 合并分支到当前分支上
2.2)暂存操作​​​​​​​
1. git stash 暂存当前修改2. git stash apply 恢复最近的一次暂存3. git stash pop 恢复暂存并删除暂存记录4. git stash list 查看暂存列表5. git stash drop 暂存名(例:stash@{0}) 移除某次暂存6. git stash clear 清除暂存
2.3)回退操作​​​​​​​
1. git reset --hard HEAD^ 回退到上一个版本2. git reset --hard ahdhs1(commit_id) 回退到某个版本3. git checkout -- file撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)4. git reset HEAD file 撤回暂存区的文件修改到工作区
2.4)标签操作​​​​​​​
1. git tag 标签名 添加标签(默认对当前版本)2. git tag 标签名 commit_id 对某一提交记录打标签3. git tag -a 标签名 -m '描述' 创建新标签并增加备注4. git tag 列出所有标签列表5. git show 标签名 查看标签信息6. git tag -d 标签名 删除本地标签7. git push origin 标签名 推送标签到远程仓库8. git push origin --tags 推送所有标签到远程仓库9. git push origin :refs/tags/标签名 从远程仓库中删除标签
2.5)其他常规操作​​​​​​​
1. git push origin test 推送本地分支到远程仓库2. git rm -r --cached 文件/文件夹名字 取消文件被版本控制3. git reflog 获取执行过的命令4. git log --graph 查看分支合并图5. git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方式合并,采用这种方式合并可以看到合并记录6. git check-ignore -v 文件名 查看忽略规则7. git add -f 文件名 强制将文件提交
2.6)git创建项目仓库​​​​​​​
1、git init 初始化2、git remote add origin url 关联远程仓库3、git pull4、git fetch 获取远程仓库中所有的分支到本地
2.7)忽略已加入到版本库中的文件​​​​​​​
1、git update-index --assume-unchanged file 忽略单个文件2、git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
2.8)取消忽略文件
git update-index --no-assume-unchanged file
2.9)拉取、上传免密码
git config --global credential.helper store

03Git基本操作

1、创建版本库

版本库就是我们所说的“仓库”,英文名repository,你可以理解为一个目录,这个目录里面的所有文件都可以被Git管理,文件的修改,删除Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

下面在D:下创建了一个git 的版本库:

图片

2、添加文件到版本库

要添加文件到版本库,首先需要将这个目录变为git可以管理的仓库,命令如下:

图片

在git目录下创建一个test.txt文件:

图片

git add:将文件提交到暂存区

git commit -m:将暂存区文件提交到仓库(单引号内为注释)

3、检查是否有未提交的文件

通过下面的命令,检查该版本库是否有文件未提交:​​​​​​​

Foreknew@ForeknewPC MINGW64 /d/git (master)$ git statusOn branch masternothing to commit, working tree cleanForeknew@ForeknewPC MINGW64 /d/git (master)

4、检查文件是否被修改

修改test.txt,然后重新检查状态:​​​​​​​

Foreknew@ForeknewPC MINGW64 /d/git (master)$ git statusOn branch masterChanges not staged for commit:(use "git add <file>..." to update what will becommitted)(use "git restore <file>..." to discard changes inworking directory)modified: test.txtno changes added to commit (use "git add" and/or"git commit -a")Foreknew@ForeknewPC MINGW64 /d/git (master)$ git diff test.txtdiff --git a/test.txt b/test.txtindex 59eb105..5d4ae7d 100644--- a/test.txt+++ b/test.txt@@ -1,3 +1,5 @@11111111111111112222222222222222-3333333333333333\ No newline at end of file+3333333333333333+4444444444444444+5555555555555555\ No newline at end of fileForeknew@ForeknewPC MINGW64 /d/git (master)

git diff:查看文件修改的内容

5、查看历史变更记录​​​​​​​

Foreknew@ForeknewPC MINGW64 /d/git (master)$ git add test.txtForeknew@ForeknewPC MINGW64 /d/git (master)$ git commit -m 'fixed 2'[master 41ad1bb] fixed 21 file changed, 3 insertions(+), 1 deletion(-)Foreknew@ForeknewPC MINGW64 /d/git (master)$ git logcommit 41ad1bba8cdc8b528f3e3182e7d84e1146220f05(HEAD -> master)Author: admin <admin@163.com>Date: Sat Jun 27 14:25:31 2020 +0800fixed 2commit dcfca195de64c268af6aa6c281f4e32dfa537ee6Author: admin <admin@163.com>Date: Sat Jun 27 14:16:03 2020 +0800test.txt file commit 2020-06-27Foreknew@ForeknewPC MINGW64 /d/git (master)$

git log:获得历史修改记录

git log --pretty=oneline:使记录只显示主要的内容,一行显示

6、回退版本​​​​​​​

git reset --hard HEAD^:回退到上一个版本git reflog:获取历史版本号git reset --hard 版本号:回退到该版本号对应的版本PS:如果要回退到上上个版本,可以使用git reset --hard HEAD^^命令,但是这样稍显麻烦,如果回退到100个版本之前,只需要执行这个命令即可:git reset --hard HEAD~100;

7、将本地文件推送到github仓库

检查文件是否还有未提交或者修改的,然后将文件提交到github仓库,命令如下:

图片

8、克隆GitHub远程仓库

图片

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

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

相关文章

批量对 Word 优化与压缩,减少 Word 文件大小

在编辑 Word 文档的时候&#xff0c;我们通常会插入一些图片或者一些样式&#xff0c;这可能会导致 Word 文档的体积变得非常的庞大&#xff0c;不利于我们对 Word 文档进行分享、传输或者存档等操作&#xff0c;因此我们通常会碰到需要优化或者压缩 Word 文档的需求。那如何才…

CSS定位详解上

1. 相对定位 1.1 如何设置相对定位&#xff1f; 给元素设置 position:relative 即可实现相对定位。 可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。 1.2 相对定位的参考点在哪里&#xff1f; 相对自己原来的位置 1.3 相对定位的特点&#xff1…

DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨

文章目录 一、DeepSeek&#xff1a;知识图谱与高效信息检索1. 核心技术2. 主要特点3. 应用场景4. 实际案例 二、Grok&#xff1a;通用人工智能框架1. 核心技术2. 主要特点3. 应用场景4. 实际案例 三、ChatGPT&#xff1a;聊天机器人与通用对话系统1. 核心技术2. 主要特点3. 应用…

【万字长文】基于大模型的数据合成(增强)及标注

写在前面 由于合成数据目前是一个热门的研究方向&#xff0c;越来越多的研究者开始通过大模型合成数据来丰富训练集&#xff0c;为了能够从一个系统的角度去理解这个方向和目前的研究方法便写了这篇播客&#xff0c;希望能对这个领域感兴趣的同学有帮助&#xff01; 欢迎点赞&…

MacBook上API调⽤⼯具推荐

在当今的软件开发中&#xff0c;API调用工具已经成为了开发者不可或缺的助手。无论是前端、后端还是全栈开发&#xff0c;API的调试、测试和管理都是日常工作中的重要环节。想象一下&#xff0c;如果没有这些工具&#xff0c;开发者可能需要手动编写复杂的CURL命令&#xff0c;…

【数据结构】LRUCache|并查集

目录 一、LRUCache 1.概念 2.实现:哈希表双向链表 3.JDK中类似LRUCahe的数据结构LinkedHashMap &#x1f525;4.OJ练习 二、并查集 1. 并查集原理 2.并查集代码实现 3.并查集OJ 一、LRUCache 1.概念 最近最少使用的&#xff0c;一直Cache替换算法 LRU是Least Recent…

初识Qt · 信号与槽 · 基础知识

目录 前言&#xff1a; 信号和槽初识 两个问题 前言&#xff1a; 本文我们正式开始介绍信号与槽这个概念&#xff0c;在谈及Qt中的信号与槽这个概念之前&#xff0c;我们不妨回顾一下Linux中的信号&#xff0c;比如发生了除0错误&#xff0c;OS就会给该进程发送一个信号&am…

Java高频面试之集合-03

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;说说ArrayList和LinkedList的区别 ArrayList 与 LinkedList 的详细对比 一、底层数据结构 特性ArrayListLinkedList存…

宇树科技再落一子!天羿科技落地深圳,加速机器人创世纪

2025年3月5日&#xff0c;机器人行业龙头宇树科技&#xff08;Unitree&#xff09;在深圳再添新动作——全资子公司深圳天羿科技有限公司正式成立。这家注册资本10万元、法定代表人周昌慧的新公司&#xff0c;聚焦智能机器人研发与销售&#xff0c;标志着宇树科技在华南市场的战…

【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)

背景&#xff1a; 已经用这个脚本的记得设置Wifi时候&#xff0c;关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开&#xff0c;一天要重新连接&#xff0c;点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本&#xff0c;那样我就可以解放双手&…

计算机毕业设计SpringBoot+Vue.js电商平台(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理

华为w515麒麟芯片版&#xff0c;还有非麒麟芯片版本&#xff0c;是一款信创电脑&#xff0c;一般安装的UOS系统。 准备一个空U盘&#xff0c;先下载镜像文件及启动盘制作工具&#xff0c;连接如下&#xff1a; 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…

初始提示词(Prompting)

理解LLM架构 在自然语言处理领域&#xff0c;LLM&#xff08;Large Memory Language Model&#xff0c;大型记忆语言模型&#xff09;架构代表了最前沿的技术。它结合了存储和检索外部知识的能力以及大规模语言模型的强大实力。 LLM架构由外部记忆模块、注意力机制和语…

Vue+el-upload配置minIO实现大文件的切片并发上传、上传进度展示、失败重试功能

vue3el-upload实现切片上传 效果图 初始界面 上传中的界面 上传完成的界面 上传失败的界面 <template><div><el-uploadclass"BigFileUpload"ref"uploadRef"action"#"drag:show-file-list"false":on-change"…

正则表达式梳理(基于python)

正则表达式&#xff08;regular expression&#xff09;是一种针对字符串匹配查找所定义的规则模式&#xff0c;独立于语言&#xff0c;但不同语言在实现上也会存在一些细微差别&#xff0c;下面基于python对常用的相关内容进行梳理。 文章目录 一、通用常识1.通配符ps.反义 2.…

【仿muduo库one thread one loop式并发服务器实现】

文章目录 一、项目介绍1-1、项目总体简介1-2、项目开发环境1-3、项目核心技术1-4、项目开发流程1-5、项目如何使用 二、框架设计2-1、功能模块划分2-1-1、SERVER模块2-1-2、协议模块 2-2、项目蓝图2-2-1、整体图2-2-2、模块关系图2-2-2-1、Connection 模块关系图2-2-2-2、Accep…

服务流程设计和服务或端口重定向及其websocket等应用示例

服务流程设计和服务或端口重定向及其websocket等应用示例 目录 服务或端口重定向的服务设计和websocket等应用示例 一、通用请求控制流程 1.1、入口 1.2、所有GET请求首先预检控制单元 1.3、http请求会分别自动307重定向 1.4、所有请求首先执行跨源控制单元 1.5、然后…

【数据库】关系代数

关系代数 一、关系代数的概念二、关系代数的运算2.1 并、差、交2.2 投影、选择2.3 笛卡尔积2.4 连接2.5 重命名2.6 优先级 一、关系代数的概念 关系代数是一种抽象的数据查询语言用对关系的运算来表达查询 运算对象&#xff1a;关系运算符&#xff1a;4类运算结果&#xff1a;…

ubuntu20 安装python2

1. 确保启用了 Universe 仓库 在某些情况下&#xff0c;python2-minimal 包可能位于 Universe 仓库中。你可以通过以下命令启用 Universe 仓库并更新软件包列表&#xff1a; bash复制 sudo add-apt-repository universe sudo apt update 然后尝试安装&#xff1a; bash复制…

MySQL无法连接到本地localhost的解决办法2024.11.8

问题描述&#xff1a;我的MySQL可以远程连接服务器&#xff0c;但无法连接自己的localhost。 错误提示&#xff1a; 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因&#xff1a; 1. 检查环境变量是否正确&#xff1a;发现没…