1.git的介绍

Git 是一个分布式版本控制系统,由 Linus Torvalds 在 2005 年为 Linux 内核开发而创建。它能够高效地处理从小型到超大型项目的版本管理,具有以下特点:

  • 分布式架构:每个开发者本地都有完整的仓库副本
  • 高效性能:快速处理大项目,操作主要在本地完成
  • 强大的分支系统:轻松创建、合并和管理分支
  • 数据完整性:使用 SHA-1 哈希确保数据不被篡改

2.Git 的安装

2.1Git 的下载

这个就需要去 Git 官网下载对应系统的软件了,下载地址为 git-scm.com或者gitforwindows.org,或者阿里镜像

2.2 Git 的安装

我下载的版本是阿里镜像里的 Git-2.48.1-64-bit.exe,接下来我们就对这个版本进行安装工作。

2.2.1 使用许可声明

双击下载后的 Git-2.48.1-64-bit.exe,开始安装,这个界面主要展示了 GPL 第 2 版协议1的内容,点击 [next] 到第二步。

2.2.2 选择安装目录

可点击 “Browse…” 更换目录,也可直接在方框里面改,我一般直接将 “C” 改为 “D”,这样就直接安装在 D 盘里了。点击 [next] 到第三步。

2.2.3 选择安装组件

大家根据自己的需要选择勾选。点击 [next] 到第四步。

方框内 Git 可改为其他名字,也可点击 “Browse...” 选择其他文件夹或者给"Don't create a Start Menu folder" 打勾不要文件夹,点击 [next] 到第五步。

2.2.5 选择 Git 默认编辑器

Git 安装程序里面内置了 10 种编辑器供你挑选,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默认的是 Vim ,选择 Vim 后可以直接进行到下一步,但是 Vim 是纯命令行,操作有点难度,需要学习。如果选其他编辑器,则还需要去其官网安装后才能进行下一步。


下图为默认编辑器 Vim.可直接点击 [next] 到第六步。
 

2.2.6 决定初始化新项目(仓库)的主干名字

第一种是让 Git 自己选择,名字是 master ,但是未来也有可能会改为其他名字;第二种是我们自行决定,默认是 main,当然,你也可以改为其他的名字。一般默认第一种,点击 [next] 到第七步。

注: 第二个选项下面有个 NEW! ,说很多团队已经重命名他们的默认主干名为 main . 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动,很多人认为 master 不尊重黑人,呼吁改为 main.
 

2.2.7 调整你的 path 环境变量

第一种是仅从 Git Bash 使用 Git。这个的意思就是你只能通过 Git 安装后的 Git Bash 来使用 Git ,其他的什么命令提示符啊等第三方软件都不行。

第二种是从命令行以及第三方软件进行 Git。这个就是在第一种基础上进行第三方支持,你将能够从 Git Bash,命令提示符(cmd) 和 Windows PowerShell 以及可以从 Windows 系统环境变量中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。

第三种是从命令提示符使用 Git 和可选的 Unix 工具。选择这种将覆盖 Windows 工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话,适合比较懂的人折腾。
 

2.2.8 选择 SSH 执行文件

2.2.9 选择HTTPS后端传输

2.2.10 配置行尾符号转换

2.2.11 配置终端模拟器以与 Git Bash 一起使用

2.2.12 选择默认的 “git pull” 行为

“git pull” 是什么意思呢?
git pull 就是获取最新的远程仓库分支到本地,并与本地分支合并

上面给了三个 “git pull” 的行为:
第一个是 merge
第二个是 rebase
第三个是 直接获取

第一种 git pull = git fetch + git merge
第二种 git pull = git fetch + git rebase
第三种 git pull = git fetch ?(这个没试过,纯属猜测

一般默认选择第一项,git rebase 绝大部分程序员都用不好或者不懂,而且风险很大,但是很多会用的人也很推崇,但是用不好就是灾难。

git pull 只是拉取远程分支并与本地分支合并,而 git fetch 只是拉取远程分支,怎么合并,选择 merge 还是 rebase ,可以再做选择。


2.2.13 选择一个凭证帮助程序

2.2.14 配置额外的选项

安装中.....

到此就安装结束了

3.git的简单使用

可以查看这里git详细使用教程_git使用方法-CSDN博客

工作流程

  1. 初始化或克隆仓库::使用 git init 创建一个新仓库或 git clone 克隆一个现有仓库。
  2. 修改代码::在工作区进行文件的编写和修改。
  3. 添加到暂存区::使用 git add 命令将需要跟踪的文件添加到暂存区。
  4. 提交到版本库::使用 git commit 命令将暂存区的所有更改提交到本地版本库。
  5. 拉取与推送::在团队协作时,使用 git pull 获取远程更新,使用 git push 上传本地的更改。

Git 基本操作

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

本章将对有关创建与提交你的项目快照的命令作介绍。

Git 常用的是以下 6 个命令:git clonegit pushgit add 、git commitgit checkoutgit pull,后面我们会详细介绍。

说明:

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

一个简单的操作步骤:

$ git init    
$ git add .    
$ git commit  
  • git init - 初始化仓库。
  • git add . - 添加文件到暂存区。
  • git commit - 将暂存区内容添加到仓库中。

创建仓库命令

下表列出了 git 创建仓库的命令:

命令说明
git init初始化仓库
git clone拷贝一份远程仓库,也就是下载一个项目。

提交与修改

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

下表列出了有关创建与提交你的项目的快照的命令:

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git difftool使用外部差异工具查看和比较文件的更改。
git range-diff比较两个提交范围之间的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm将文件从暂存区和工作区中删除。
git mv移动或重命名工作区文件。
git notes添加注释。
git checkout分支切换。
git switch (Git 2.23 版本引入)更清晰地切换分支。
git restore (Git 2.23 版本引入)恢复或撤销文件的更改。
git show显示 Git 对象的详细信息。

提交日志

命令说明
git log查看历史提交记录
git blame <file>以列表形式查看指定文件的历史修改记录
git shortlog生成简洁的提交日志摘要
git describe生成一个可读的字符串,该字符串基于 Git 的标签系统来描述当前的提交

远程操作

命令说明
git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并
git submodule管理包含其他 Git 仓库的项目

Git 文件状态

Git 的文件状态分为三种:工作目录(Working Directory)、暂存区(Staging Area)、本地仓库(Local Repository)。了解这些概念及其交互方式是掌握 Git 的关键。

工作目录(Working Directory)

工作目录是你在本地计算机上看到的项目文件。它是你实际操作文件的地方,包括查看、编辑、删除和创建文件。所有对文件的更改首先发生在工作目录中。

在工作目录中的文件可能有以下几种状态:

  • 未跟踪(Untracked):新创建的文件,未被 Git 记录。
  • 已修改(Modified):已被 Git 跟踪的文件发生了更改,但这些更改还没有被提交到 Git 记录中。

暂存区(Staging Area)

暂存区,也称为索引(Index),是一个临时存储区域,用于保存即将提交到本地仓库的更改。你可以选择性地将工作目录中的更改添加到暂存区中,这样你可以一次提交多个文件的更改,而不必提交所有文件的更改。

  • 使用 git add <filename> 命令将文件从工作目录添加到暂存区。
  • 使用 git add . 命令将当前目录下的所有更改添加到暂存区。
git add <filename>  # 添加指定文件到暂存区
git add .           # 添加所有更改到暂存区

本地仓库(Local Repository)

本地仓库是一个隐藏在 .git 目录中的数据库,用于存储项目的所有提交历史记录。每次你提交更改时,Git 会将暂存区中的内容保存到本地仓库中。

使用 git commit -m "commit message" 命令将暂存区中的更改提交到本地仓库。

git commit -m "commit message"  # 提交暂存区的更改到本地仓库

文件状态的转换流程

未跟踪(Untracked): 新创建的文件最初是未跟踪的。它们存在于工作目录中,但没有被 Git 跟踪。

touch newfile.txt  # 创建一个新文件
git status         # 查看状态,显示 newfile.txt 未跟踪

已跟踪(Tracked): 通过 git add 命令将未跟踪的文件添加到暂存区后,文件变为已跟踪状态。

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 在暂存区

已修改(Modified): 对已跟踪的文件进行更改后,这些更改会显示为已修改状态,但这些更改还未添加到暂存区。

echo "Hello, World!" > newfile.txt  # 修改文件
git status                          # 查看状态,显示 newfile.txt 已修改

已暂存(Staged): 使用 git add 命令将修改过的文件添加到暂存区后,文件进入已暂存状态,等待提交。

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 已暂存

已提交(Committed): 使用 git commit 命令将暂存区的更改提交到本地仓库后,这些更改被记录下来,文件状态返回为已跟踪状态。

git commit -m "Added newfile.txt"  # 提交更改
git status                         # 查看状态,工作目录干净

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java后端开发?接口封装器!

开发接口确实是Java后端开发中最核心、最可见的产出工作。“对入参校验、处理业务逻辑、返回格式处理”——精准地描述了一个API接口的核心处理流程。 但这只是冰山之上最直观的部分。一个专业、稳健、可扩展的后端系统&#xff0c;其复杂性和价值绝大部分隐藏在冰山之下。结合…

【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。

目录一、问题描述二、环境版本三、原因分析四、解决方案一、问题描述 在看一篇cuda安装的教程时&#xff0c;第一步是打开NVIDIA 控制面板&#xff0c;但是我打不开&#xff1a; NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。 二、环境版本 设备&#xf…

牛客周赛 Round 106(小苯的方格覆盖/小苯的数字折叠/ 小苯的波浪加密器/小苯的数字变换/小苯的洞数组构造/ 小苯的数组计数)

A 小苯的方格覆盖思路&#xff1a;怎么摆第三行都是横放的2*1&#xff1b;故若n为奇数&#xff0c;总格子数3n为奇数&#xff0c;无法被2整除&#xff0c;直接排除。#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<bits/stdc…

高并发内存池(16)-三层缓存的回收过程

高并发内存池&#xff08;16&#xff09;-三层缓存的回收过程 内存池的回收过程是内存管理系统的关键环节&#xff0c;它通过分层协作和智能合并机制&#xff0c;确保内存高效重复利用。以下是完整的回收流程解析&#xff1a;一、回收触发场景 ThreadCache回收&#xff1a;线程…

深入解析MyBatis Mapper接口工作原理

在Java持久层框架中&#xff0c;MyBatis以其灵活性和易用性赢得了广大开发者的青睐。作为MyBatis的核心概念之一&#xff0c;Mapper接口机制极大地简化了数据库操作代码的编写。本文将深入剖析MyBatis Mapper接口的工作原理&#xff0c;从基础概念到底层实现&#xff0c;帮助开…

疯狂星期四文案网第49天运营日记

网站运营第49天&#xff0c;点击观站&#xff1a; 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 常州苏州那些ip锲而不舍的扫了很多php的页面 今日搜索引擎收录情况 k页面比较严重了&#xff0c;哎。 我感觉不该做其他类型文案的 网…

从GPT-5发布来分析LLM大模型幻觉收敛(一)

GPT-5 号称在任何领域都有博士级别能力。在医疗健康领域&#xff0c;能够对专业的癌症诊断报告做通俗易懂的解读。对复杂的放射治疗方案决策&#xff0c;也能提供详细的分析报告&#xff0c;帮助病人权衡利弊。一位癌症患者的家属在发布会上表示&#xff0c;“ 真正鼓舞人心的是…

大模型安全概述、LlamaFirewall

资料搜集整理自网络。 概述 大模型爆火之后&#xff0c;衍生出大模型安全这一个比较新的领域。和之前的文章一样&#xff0c;本文有不少新颖的名词、概念、理论。 信通院、清华大学等多个单位联合发布的《大模型安全实践&#xff08;2024&#xff09;》&#xff0c;提出LLM安…

【目标检测】论文阅读3

Lightweight tomato ripeness detection algorithm based on the improved RT-DETR 论文地址 摘要 番茄具有很高的营养价值&#xff0c;需要对成熟果实进行准确的成熟度鉴定和选择性采收&#xff0c;以显著提高番茄收获管理的效率和经济效益。以往对番茄智能收获的研究往往只以…

Python音频分析与线性回归:探索声音中的数学之美

摘要&#xff1a;通过Python实现WAV音频信号处理与线性回归建模&#xff0c;揭示双声道音频的数学关联性&#xff0c;为声音特征分析提供新视角。1. 音频数据处理流程 1.1 WAV文件读取与预处理 使用scipy.io.wavfile读取音频文件&#xff0c;获取采样率与时域信号数据&#xff…

Linux shell脚本数值计算与条件执行

变量的数值计算实践 1 算术运算符 如果要执行算术运算&#xff0c;就会离不开各种运算符号&#xff0c;和其他编程语言类似&#xff0c;Shell 也有很多算术运算符。 下面就给大家介绍一下常见的 Shell 算术运算符&#xff1a; 、-&#xff0c;一元正号和负号。、-&#xff0c;加…

C#实战:基于iTextSharp实现PDF加密小工具

目录 1、技术框架 2、代码实战 2.1 创建窗体 2.2 后台代码逻辑 2.3 PDF加密用户类型 2.4 PDF加密权限列表 3、运行效果 4、总结 大家日常办公中有时候为了文档资料的安全需要对文档进行加密,尤其是针对PDF文档这个场景还是非常广泛的。今天给大家分享使用C#来实现PDF…

基于Labview的旋转机械AI智能诊断系统

1.摘要本文基于 CWRU 公开轴承数据集提出了一套“AI 轻量级模型 LabVIEW 智能诊断系统”。首先&#xff0c;LabVIEW 端构建了可视化、可交互的智能诊断平台。系统能够加载本地振动信号数据&#xff0c;调用训练好的深度学习模型进行故障识别与状态判断。界面集成信号时域监测、…

Qt从qmake迁移到cmake的记录

文章目录1.UI程序[开启/关闭]控制台2.增加宏定义3.在主项目中引入子项目4.使用C语言文件1.UI程序[开启/关闭]控制台 qmake&#xff1a; CONFIG console DEFINES QT_MESSAGELOGCONTEXTcmake&#xff1a; set(CMAKE_WIN32_EXECUTABLE OFF) # ON为关闭控制台 OFF为开启控制台2…

LangChain4J-(3)-模型参数配置

LangChain4j 提供了灵活的模型参数配置方式&#xff0c;允许你根据不同的 AI 模型&#xff08;如 OpenAI、GPT-4、Anthropic 等&#xff09;设置各种参数来控制生成结果。后面手撸代码继续在之前章节的代码上拓展一、日志配置&#xff08;Logging&#xff09;在 LangChain4j 中…

LangGraph - API多种访问方式

本文介绍了Langgraph服务的四种调用方式&#xff1a;1. 通过LangGraph Studio UI界面手动测试&#xff1b;2. 使用Python SDK进行同步/异步调用&#xff1b;3. 通过REST API测试&#xff1b;4. 使用JavaScript SDK接入。Langgraph 服务端代码 graph.pyfrom langchain_openai im…

HEI-612 HART/EtherNet/IPModbus TCP 网关:打通工业通信壁垒

在工业自动化领域&#xff0c;HART 协议设备的广泛应用与以太网网络的高效管理常面临 “协议孤岛” 难题 —— 老旧 HART 传感器、变送器难以接入 EtherNet/IP 或 Modbus TCP 系统&#xff0c;数据双向交互卡顿、调试复杂、兼容性差等问题&#xff0c;严重制约生产效率提升。上…

OSPF 的工作过程、Router ID 机制、报文结构

视频版讲解>>>>>>>>>>>>>>路由协议深度解析&#xff1a;从静态路由到 OSPF 实战 一、回顾静态路由&#xff1a;拓扑与核心逻辑 我们先回到上周讲解的拓扑图&#xff0c;这张图是理解静态路由的核心载体 —— 路由器作为网段分割的…

Qt 6 与 Qt 5 存在的兼容性差异

之前有提到。我的是Qt5&#xff0c;我朋友的是Qt 6&#xff0c;由于版本不兼容问题&#xff0c;在迁移时会有问题。所以这一我们说说这两个的区别。&#xff08; 正文开始喽&#xff01; 总结来说&#xff1a;Qt5迁移至 Qt 6 需&#xff1a;1. 破坏性变更&#xff08;必须修改…

本地windows电脑部署html网页到互联网:html+node.js+ngrok/natapp

目录 核心概念&#xff1a;为什么不能直接分享HTML文件&#xff1f; 1&#xff0c;html文件修改 2&#xff0c;安装设置node.js 3&#xff0c;路由器虚拟服务器 4&#xff0c;采用ngrok工具进行内网穿透&#xff08;国外工具&#xff09; 5&#xff0c;采用natapp工具进行…