Git 介绍和使用

news2024/11/19 2:26:32

文章目录

  • 前言
  • 1、Git 安装和使用
  • 2、Git 工作区域和状态
  • 3、Git 常用指令
    • 3.1、Git 参数配置
    • 3.2、Git 本地仓库
    • 3.3、Git 远程仓库
    • 3.4、分支

前言

        Git 是一个免费,开源的分布式版本控制系统,可以敏捷高效的进行各种规模大小的版本管理。Git 与 SVN 的二者最核心的区别在于:Git 是分布式的,而 SVN 是集中式的版本控制系统。而分布式相对于集中式的最大区别在于开发者可以提交到本地,每个开发者都可以通过克隆操作在本地机器上复制一个完整的 Git 仓库作为本地仓库,这样就非常适合离线工作。

分布式和集中式对比

        SVN 集中式版本控制系统,版本库都是集中存放在中央处理器上的,团队成员在个人本地计算机上进行功能的代码开发工作,每当完成一个单元模块,就需要上传到中央处理器服务器。若团队成员需要修改某个单元的模块代码,就需要先从服务器上检出最新的代码,进行相应的修改,然后再进行上传提交的操作。在整个流程中,我们发现一个必要的条件是:整个团队内(个人计算机与中央服务器)必须处在联网状态下才可以正常工作。那么就存在一个问题:若是在互联网上,网速就是一个最大的瓶颈。

        Git 分布式版本控制系统,该系统中没有 “中央处理器” 的概念,团队内每个人的计算机都是一个完整得版本库,完全可以离线工作,那么既然每个成员计算机都有一个完整的版本库,又如何进行多人协作呢?比如团队成员A修改了文件X,若成员成员B也修改了文件X,此时A、B之间只需要把各自的修改推动提交给对方,就可以互相看到对方的修改了。与集中式的版本控制相比,分布式的安全性要提高很多。由于每个人的计算机都有一个完成的版本库,若某个团队成员的计算机坏掉了也没关系,随便从其他成员计算机里复制一份即可。但是若在集中式版本控制系统的中央处理器出了问题,所有的团队成员都无法继续工作。

1、Git 安装和使用

安装

官网:https://git-scm.com

在这里插入图片描述
使用

在这里插入图片描述

2、Git 工作区域和状态

工作区域

  • workspace 工作区:是对项目的某个版本独立提取出来的内容,可以在这基础上进行文件的修改。就是你在电脑里能看到的目录。
  • index 暂存区:一个保存了下次将提交的文件列表信息的文件。位置在 .git/index,git add 后的内容实际就是放在暂存区。
  • Repository 本地仓库:存放项目历史版本的目录,就是执行 git init 指令之后,在工作空间文件夹生成的.git的目录,用来保存项目的元数据和对象数据库的地方,克隆仓库指的就是克隆这里的数据。整个/.git目录,表示Git 的版本库,本地 git commit 后的内容实际就是记录在版本库。

在这里插入图片描述

状态

  • 已修改:表示修改了文件,但还没保存到本地仓库中。(修改代码操作)
  • 已暂存:表示对一个已修改文件的当前 版本做了标记,使之包含在下次提交的快照中。(git add 操作)
  • 已提交:表示数据已经安全的 保存在本地仓库中。(git commit 操作)

3、Git 常用指令

3.1、Git 参数配置

  1. 显示当前 git 配置信息
git config -l
  1. 设置提交代码时的用户名称和电邮地址(这两个比较常见且重要)
git config --global user.name "yangjj"
git config --global user.email xxxxx@xx.com

在这里插入图片描述
说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:或本地仓库
  • remote repository:远程仓库

3.2、Git 本地仓库

  1. 初始化仓库有两种方法:直接本地初始化从远端仓库 clone 到本地

① 直接本地初始化

git init

② 从远端仓库 clone 到本地,其中<repo>表示仓库地址,<directory>可以用于指定本地具体目录名称,不写默认当前目录。

git clone <repo> <directory>
  1. 查看仓库状态
git status
  1. 将文件添加到暂存区

① 添加指定问价到缓存区

git add [file1/dir1] [file2/dir2] ...

② 添加当前所有修改到暂存区

git add .
  1. 命令将暂存区内容添加到本地仓库中

① 提交暂存区所有修改到本地仓库中,其中[message]主要是本次提交的备注信息,一般用单引号或双引号括起来

git commit -m [message]

② 提交暂存区指定文件到本地仓库中,其中[message]主要是本次提交的备注信息

git commit [file1] [file2] ... -m [message]

③ git commit -a表示修改内容后不用git add这一步,直接提交到仓库

git commit -a -m [message]

3.3、Git 远程仓库

  1. 关联远程仓库
git remote add origin 远程仓库的地址
  1. 查看远程仓库地址
git remote -v
  1. 文件推送到远程仓库
git push origin 分支名
  1. 克隆远程仓库默认分支
git clone 克隆的远程仓库地址
  1. 克隆远程仓库指定分支
git clone -b 分支名 克隆的远程仓库地址
  1. 远程仓库下载
git pull origin 分支名

3.4、分支

  1. 查看分支
git branch
  1. 创建分支
git branch 分支名
  1. 切换分支
git checkout 分支名
  1. 查看日志
git log
  1. 分支合并
git merge 分支a

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

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

相关文章

ChatGPT到底是什么

ChatGPT到底是什么 我将在这里尝试解释清楚 ChatGPT 到底什么。 对于非常了解和非常熟悉 ChatGPT 的朋友&#xff0c;这篇推文您可以跳过不看&#xff01; ChatGPT 在全球互联网上制造了一场人工智能风暴。 ChatGPT是什么&#xff1f; ChatGPT是由OpenAI开发的一个人工智能聊…

Golang-数组与切片常见错误及陷阱

数组与切片有什么区别 slice 的底层数据是数组&#xff0c;slice 是对数组的封装&#xff0c;它描述一个数组的片段。两者都可以通过下标来访问单个元素。 数组是定长的&#xff0c;长度定义好之后&#xff0c;不能再更改。在 Go 中&#xff0c;数组是不常见的&#xff0c;因…

Zabbix 3.0 从入门到精通(zabbix使用详解)

Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻&#xff0c;提前提醒我们服务器出问题了 当出问题之后&#xff0c;可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性&#xff08;也称为可用性…

css复习

CSS 最大价值: 由 HTML 专注去做结构呈现&#xff0c;样式交给 CSS&#xff0c;即 结构 ( HTML ) 与样式( CSS ) 相分离。 CSS 规则由两个主要的部分构成&#xff1a;选择器以及一条或多条声明。 代码风格&#xff1a; ①属性值前面&#xff0c;冒号后面&#xff0c;保留一个空…

Java基础:异常与错误(ExceptionError)

1 缘起 某天上网冲浪时&#xff0c;偶然看到一个问题&#xff0c;说Java的Error和Exception有什么区别&#xff1f; 一句话&#xff1a;不知道。并不能很清晰地描述出个中区别。 当然&#xff0c;曾经也看过Throwable相关的知识&#xff0c;但是&#xff0c;并没有通过源码及注…

Java递归问题

3 递归 3.1 递归基础 递归概述&#xff1a;以编程的角度来看&#xff0c;递归指的是方法定义中调用方法本身的现象递归解决问题的思路&#xff1a; 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解递归策略只需少量的程序就可描述出解题过程所需要的多次重…

CHAPTER 3 Zabbix Grafana

Zabbix & Grafana3.1 Grafana简介3.2 安装grafana3.3 启动grafana3.4 登录控制台3.5 链接zabbix1.安装zabbix插件2.启用插件3.链接数据源4.导入仪表盘5.创建仪表板6.创建仪表盘7.添加自建监控项8.监控信息3.1 Grafana简介 Grafana是一款开源的数据可视化工具&#xff0c;使…

多商户java版小程序+公众号+h5+app秒杀拼团砍价分销商城源码

三勾多商户商城小程序、支持多端发布&#xff0c;一套代码发布到8个平台&#xff0c;面向开发&#xff0c;方便二次开发 项目介绍 三勾多商户小程序商城基于springbootelement-uiuniapp打造的面向开发的小程序商城&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&…

做软文发布需要注意哪些细节?

软文发布是一种有效的网络营销和推广活动&#xff0c;它以媒体等形式把产品信息植入到软文报道或新闻中&#xff0c;进行心理暗示和引导销售&#xff0c;进行正面宣传以及促进销售的新型网络营销方式&#xff0c;它不但能够有效地推行产品宣传、也能有效地提高网络曝光率&#…

【Kafka进阶】-- unclean.leader.election.enable参数的内涵

一、背景近期&#xff0c;我们的kafka 消息队列集群(1.x版本)经过了一次事故。某节点意外宕机&#xff0c;导致 log 文件损坏&#xff0c;重启 kafka 失败&#xff0c;最后导致某个 topic 的分区不可用&#xff0c;本文对此做了简单的分析、解决和复现参考&#xff0c;以此为记…

opencv图像处理

CV模块 基本操作 T1家全叫米TF,拍 图像的IO操作&#xff0c;读取和保存方法在图像上绘制几何图形 怎么获取图像的属性 怎么访问图像的像素&#xff0c;进行通道分离&#xff0c;合并等 怎么实现颜色空间的变换 图像的算术运算 掌握图像的读取和保存方法 # 读取图像 cv.imrea…

Spring Boot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除

一、整个 Quartz 的代码流程基本基本如下&#xff1a;首先需要创建我们的任务(Job)&#xff0c;比如取消订单、定时发送短信邮件之类的&#xff0c;这是我们的任务主体&#xff0c;也是写业务逻辑的地方。创建任务调度器(Scheduler)&#xff0c;这是用来调度任务的,主要用于启动…

【Unity细节】RigidBody中Dynamic和Kinematic的区别

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity细节和bug ⭐Dynamic和Kinematic的区别⭐ 文章目录⭐Dynamic和Kinematic的区别⭐&#x1f3…

恰饭近800w播放,官方涨粉5000,B站用户直呼“巅峰制作”!

开年之际&#xff0c;QQ飞车在B站打造了一场「2023QQ飞车手游新春会」&#xff0c;并宣布首款女性机甲、赛车皮肤即将上线&#xff0c;携手玩家一起狂欢。来源-B站17日当晚&#xff0c;QQ飞车官方号在B站直播间举办「2023QQ飞车手游新春会」直播活动&#xff0c;共有11位UP主参…

二十五、Gtk4-多线程分析

1 回顾 1.1 Gnome相关 首先回顾一下GLib&#xff0c;GObject&#xff0c;GIO&#xff0c;Gtk的不同&#xff0c;因为下面会涉及到这些概念里面的函数。 所有这些都是由Gnome项目开发的库&#xff0c;一般都用于Gnome环境相关的应用程序。 Gtk&#xff1a;GUI界面库。GLib&a…

esxi不能识别不兼容网卡解决方案

相信很多网友在安装测试VMWARE Esxi 6.0的时候&#xff0c;总会遇到无法兼容网卡的情况&#xff0c;本人也是遇到了再组装的台式机上测试ESXI 6.0的时候&#xff0c;无法识别REALTEK RTL 8111E的情况。 找了很多网友提供的博客&#xff0c;方法是正确的&#xff0c;但是不够严…

Vue3 中实现关键字高亮的一种思路

前言&#xff1a; 这几天在项目中遇到了需要将用户在搜索框中输入的文字高亮的效果&#xff0c;思考了很久&#xff0c;暂时没有想到更优雅的解决方式&#xff0c;于是采用了最简单的一种思路来实现&#xff0c;特来记录一下。 一. 需求的场景 我接手的这个需求需要和后端搭配&…

搞量化先搞数(下):A股历史行情免费抓取实战

上一节我们学习了如何抓取A股的股票列表,我们成功地将股票列表保存到了本地文件(或数据库)中。那么这一节,我们就来看下如何免费获取A股的历史行情数据。文末附全套代码。 一、寻找提供行情数据的网站 首先我们百度搜索一支股票的名字+行情,看下都哪些网站提供该数据。 …

Docker getting started

系列文章目录 Docker 概述 Docker getting started 文章目录系列文章目录前言一、容器及镜像的概念二、容器化一个应用三、更新应用四、分享应用五、持久化数据存储volume mount 和 bind mount比较Container volumesbind mounts六、跨多容器的应用七、Docker 其它八、Docker 图…

学习 Linux 内核书籍推荐

原文链接&#xff0c;欢迎关注&#xff1a; 你为什么学习 Linux 内核&#xff1f; - CodeAllen的回答 - 知乎 https://www.zhihu.com/question/31369673/answer/2894981254 主要是工作需要&#xff0c;其实对于我自己的工作来说&#xff0c;在Linux开发的具体业务和算法才是重…