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

一文详解Git

一. Git 概述

1.1 什么是 Git

Git 是一个免费的、开源的分布式版本控制工具, 主要用于管理开发过程中的源代码文件,在软件开发过程中被广泛使用。通过Git仓库来存储和管理这些文件,Git仓库分为二种:

  • 本地仓库:开发人员自己电脑上的仓库
  • 远程仓库:远程服务器上的仓库

1.2 Git基本概念

工作区:包含 .git 文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。

暂存区:.git 文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫 stage。暂存区是一个临时保存修改文件的地方。

版本库:前面看到的 .git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。

1.3 代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。 局域网里有GitLab,互联网里有 GitHub(外网)、Gitee 码云(国内网站)。

gitHub(地址:GitHub: Let’s build from here · GitHub):是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub

码云(地址:Gitee - 企业级 DevOps 研发效能平台):是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

GitLab(地址:The DevSecOps Platform | GitLab):是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

BitBucket (地址:Bitbucket | Git solution for teams using Jira):是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

二.Git的下载和安装

1.下载

打开官网,找到Windows版的Git下载即可

2.安装

双击安装包,傻瓜式安装即可

3.验证

安装完成后在任意目录点击鼠标右键,如果能看到如下菜单,则表示安装完成

Git GUI Here:打开 Git 图形界面

Git Bash Here:打开 Git 命令行

三.Git 常用命令

3.1 设置用户签名

用户签名的作用

        签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

基本语法

git config --global user.name “用户名”git config --global user.email “邮箱”

3.2 创建本地Git仓库

要使用 Git 来对我们的代码进行控制,首先要获得 Git 仓库。可以用二种方式来创建本地仓库,分别是本地初始化一个仓库、或者从远程仓库克隆过来。

1.本地初始化仓库步骤

步骤一:在任意目录下创建一个空目录,作为我们的本地Git仓库

步骤二:进入这个目录,右键打开Git Bash窗口

步骤三:在命令行窗口中输入命令:git init

步骤四:如果在当前目录下看到.git文件夹,代表初始化仓库成功

步骤五:.git文件夹是隐藏文件夹,需要设置显示隐藏文件夹才能看到

2.从远程仓库克隆的步骤

步骤一:在任意目录下创建一个空目录

步骤二:进入这个目录,右键打开Git Bash窗口

步骤三:在命令行窗口中输入命令:git clone “远程仓库地址”

3.3 查看本地库状态

命令

git status

1.首次查看本地库状态

首次查看,本地库的工作区没有任何文件

2.新增文件

新增文件的方式有二种

方式一:直接在本地仓库内新建一个文件,步骤如下

第一步:创建一个名为 hello 的文本文档

第二步:在文本文档中随便写一些代码

方式二:通过 vim 命令新建

第一步:在 git 的命令行窗口中输入命令:vim hello.txt

第二步:在新界面按 进入插入模式,然后输入文件内容

第三步:按 esc 进入命令模式,输入命令 :wq 保存文件并退出当前命令界面

第四步:在命令界面输入命令 ll 可以发现,该本地库确实存在该文件了

第五步:在命令行界面输入 cat 文件名,即可查看文件内容

3.再次查看本地库状态

再次输入命令:git status,即可检测到未追踪的文件

3.4 添加暂存区

http://www.lryc.cn/news/120398.html

相关文章:

  • 【单片机】DS2431英文手册,中文手册,翻译
  • centos7部署openldap开启memberof并接入jumpserver
  • Unity游戏源码分享-仿开心消消乐Match3Jewel
  • 知识图谱基本工具Neo4j使用笔记 四 :使用csv文件批量导入图谱数据
  • [bug修复]状态数据在useEffect初始化时更新无效
  • 使用 API Gateway Integrator 在 Quarkus 中实施适用于 AWS Lambda 的 OpenAPI
  • 【JVM】JVM中的分代回收
  • C# Linq源码分析之Take方法
  • 从后往前读取列表的方法
  • 数据库--数据类型
  • 小型双轮差速底盘机器人实现红外跟随功能
  • TCP协议网络编程 回显服务器,客户端实现
  • 3.4 Spring MVC注解
  • OpenCV实例(八)车牌字符识别技术(三)汉字识别
  • 运维监控学习笔记2
  • 【深度学习】遗传算法[选择、交叉、变异、初始化种群、迭代优化、几何规划排序选择、线性交叉、非均匀变异]
  • 【小吉带你学Git】讲解GitHub操作,码云操作,GitLab操作
  • nginx基础
  • 【Windows API】获取卷标、卷名
  • 通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
  • swager web服务无法显示问题
  • 代码随想录训练营day18 二叉树
  • 图像的平移变换之c++实现(qt + 不调包)
  • 云原生K8S------Yaml文件详解
  • 测试开发环境安装
  • 微信小程序如何引入Iconfont
  • php使用get和post传递数据出现414 Request-URI Too Large的解决方案
  • 复现大华智慧园区综合管理平台SQL注入漏洞
  • 【uniapp】uniapp设置安全区域:
  • Grafana技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》-附带监控服务器