git版本控制工具

一、git工具介绍

1. 版本控制的概念与分类
        版本控制是一种管理文件变更的技术,允许开发者记录文件或一组文件随时间的变化,以便能够恢复到先前的状态、查看历史更改、对比不同版本之间的差异,以及协同工作。版本控制系统主要有两种分类:
集中式版本控制系统(如 SVN):有一个单一的中央服务器存放所有版本数据,客户端通过网络连接至服务器进行版本操作。
分布式版本控制系统(如 Git):每个参与者都拥有完整的本地仓库副本,包含项目的完整历史记录。可以独立于中央服务器进行大部分操作,如提交、分支切换等。网络通信主要用于同步各参与者之间的变更。
2. Git 安装与环境配置
        安装:在各个主流操作系统(Windows、macOS、Linux)上,可以通过官方提供的安装包、包管理器(如 Homebrew、apt、yum)或第三方封装工具(如 Git for Windows)来安装 Git。
环境配置:初次安装后,通常需要通过 git config 命令设置用户的全局身份信息,包括用户名(user.name)和电子邮件地址(user.email)。此外,还可以根据个人喜好调整其他配置项,如编辑器、颜色主题、代理设置等。
3. Git 常用命令与工作流程
        Git 的主要工作流程基于以下核心概念和命令:
初始化仓库:使用 git init 在本地创建一个新的 Git 仓库。
添加与提交:使用 git add 将工作区文件的改动暂存到 staging 区域,再使用 git commit 记录这些改动为一个新版本(commit)。
分支管理:使用 git branch 创建、列出或删除分支;使用 git checkout 或 git switch 切换分支;使用 git merge 合并分支。
远程交互:使用 git clone 克隆远程仓库到本地;使用 git fetch、git pull 获取远程更新;使用 git push 将本地提交推送到远程仓库。
状态查询与历史查看:使用 git status 查看工作区和暂存区的状态;使用 git log、git diff 等命令查看提交历史、文件差异等。
4. 本地仓库与远程仓库
        本地仓库:在开发者的计算机上,Git 为每个项目维护一个本地仓库,包含该项目的所有版本历史和分支结构。
远程仓库:如 GitHub、Gitee(即文中提到的“马云”)、GitLab 等托管服务提供了远程仓库,供团队成员共享代码及协作。常见的操作包括将本地仓库与远程仓库关联(git remote add),以及进行推送(git push)和拉取(git pull)操作。
5. 主干分支开发与冲突解决
        主干分支(通常指 master 或 main 分支):代表项目的稳定版本或最新发布状态。开发通常在功能分支上进行,完成后通过合并请求(Pull Request)将其合并回主干。
分支开发:为了隔离不同功能或修复的开发工作,开发者创建新的分支进行开发。完成后再合并回主干或其他目标分支。
冲突解决:当两个或多个分支对同一部分代码进行了不兼容的修改,合并时会产生冲突。Git 会标记冲突位置,开发者需手动编辑冲突文件,选择保留哪些更改,然后提交解决冲突后的结果。
6. IDE 集成
        许多现代 IDE(如 IntelliJ IDEA)提供了对 Git 的深度集成,使得开发者可以直接在 IDE 中执行 Git 操作(如查看历史、对比差异、提交、推送等),无需频繁切换到命令行。IDE 的 Git 插件通常还提供了可视化界面辅助处理复杂的分支结构和冲突解决。
7. 忽略文件与 .gitignore
        为了避免将不需要版本控制的文件(如编译产物、IDE 配置、日志、缓存等)纳入 Git 管理,可以在项目根目录下创建 .gitignore 文件,列出应忽略的文件模式。Git 会自动忽略匹配这些模式的文件,避免它们被添加到仓库中。
综上所述,Git 作为一款强大的分布式版本控制系统,凭借其高效的性能、灵活的工作流支持、丰富的命令集和广泛的社区支持,成为现代软件开发中不可或缺的工具。通过熟练掌握上述要点,开发者能够有效地利用 Git 进行代码版本管理、协同开发和项目维护。

二、安装

官网下载地址: https://git-scm.com/download/win

进入官网下载适合自己的版本。

双击下载好的.exe文件

这个界面是使用许可声明,点击“Next”

可以选择将要下载的位置,然后点击“Next”

 点击“Next”

点击“Next”

这里根据自己所使用的编辑器进行选择,然后点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

点击“Next”

等待下载

下载完成后,点击Finish

三、配置

1、环境变量

找到 环境变量并点击

双击"Path"

点击新建,将你安装的git包括cmd文件夹的路径一起写入

在桌面上右击会看到"Git GUI"和"Git Bash"

2、Git命令配置

查看配置:

git config -l

查看系统配置:

git config --system --list

查看用户配置:

git config --global --list

查看文件是否被跟踪:

git status

配置用户名:

git config --global user.name "填入你自己的用户名"

将所有已存在于Git跟踪范围内的文件全部添加到暂存区:

git add .

配置邮箱:

git config --global user.email "填入你自己的邮箱"

3、工作区域

        Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

四、使用Git提交/克隆

1、提交

(1)首先进行创建本地仓库

新建一个文件,然后右击选择“Git Bash”

在命令行输入:

git init

此时在你刚刚新建的文件夹中出现一个.git的文件夹(此文件夹默认是隐藏的)

(2)随便建一个文件,然后在命令行中执行下方命令(将文件全部添加到暂存区)

git add .

然后再使用命令进行跟踪,看文件是否都在暂存区

git status

(3)将提交到暂存区的内容到本地仓库 -m 提交信息

git commit -m "提交信息"

(4)连接到远程仓库

git remote add 远程仓库的别名 <remote_repository_url>
其中 <remote_repository_url> 是远程仓库的 URL。这样,Git 就能够识别并成功将本地仓库的提交推送到指定的远程仓库。

(5)推送到远程仓库

git push 远程仓库的别名 main(如果是master分支请换成master)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jsp中使用session实现一个简单的购物车案例

1、需求分析 相信大家都有网上购物的经历&#xff0c;当用户选定某件商品时&#xff0c;只要选择“购买”&#xff0c;便可将商品添加到购物车中&#xff0c;购物车中包含了用户所有要购买的商品。接下来&#xff0c;以购买图书为例&#xff0c;使用Session模拟实现购物车功能…

vscode开发ESP32问题记录

vscode 开发ESP32问题记录 1. 解决vscode中的波浪线警告 1. 解决vscode中的波浪线警告 参考链接&#xff1a;https://blog.csdn.net/fucingman/article/details/134404485 首先可以通过vscode 中的IDF插件生成模板工程&#xff0c;这样会自动创建.vscode文件夹中的一些json配…

illustrator编组后透明图形也能挡住后面的图形的物体

今日学习使用illustrator&#xff0c;使用3D中的突出和斜角生成了一个圆柱体之后&#xff0c;扩展图形&#xff0c;修改之后发现一个奇怪的问题&#xff0c;编组中的透明物体挡住了后面的图形&#xff08;后面的图形是有颜色的&#xff09; 后面发现&#xff0c;原来是扩展生成…

Redis 事务 与 管道

redis事务 谈到事务大家可能就会想起mysql中的事务 注意这里的事务不是指的是事务的四大特性acid 持久性 原子性 隔离性 一致性 事务的概念就是 一组命令,串行化执行而不被打断 这里redis的事务和mysql的事务就不太一样 传统关系型数据库的事务主要强调的是一个没有执行完成就…

如何查询网站是否被搜索引擎收录

怎么看网站有没有被百度收录 对于网站所有者来说&#xff0c;了解自己的网站是否被百度搜索引擎收录是非常重要的。只有被收录&#xff0c;网站才能在百度搜索结果中展现&#xff0c;从而获取流量和曝光。下面介绍几种方法&#xff0c;让您快速了解自己的网站是否被百度收录。…

ctf_show笔记篇(web入门---SSRF)

ssrf简介 ssrf产生原理&#xff1a; 服务端存在网络请求功能/函数&#xff0c;例如&#xff1a;file_get_contens()这一类类似于curl这种函数传入的参数用户是可控的没有对用户输入做过滤导致的ssrf漏洞 ssrf利用: 用于探测内网服务以及端口探针存活主机以及开放服务探针是否存…

Java多线程三种实现方式

一、继承Thread方法 public class MyThread extends Thread{Overridepublic void run() {for (int i 0; i < 10; i) {System.out.println(getName() "输出内容");}}public static void main(String[] args) {MyThread thread1 new MyThread();MyThread thread…

2024年清明节安装matlab 2024a

下载安装离线支持包SupportSoftwareDownloader_R2024a_win64&#xff0c;地址https://ww2.mathworks.cn/support/install/support-software-downloader.html&#xff0c;运行软件&#xff08;自解压运行&#xff09;&#xff0c;登录账号&#xff08;需要提前在官网注册&#x…

Java数据结构-队列

目录 1. 队列概念2. 模拟实现队列2.1 链式队列2.2 循环队列 3. 双端队列4. 队列的应用4.1 用队列实现栈4.2 用栈实现队列 1. 队列概念 队列是一种只能在一端进行插入数据操作&#xff0c;另一端进行删除数据操作的数据结构&#xff0c;插入数据的叫队尾&#xff0c;删除数据的…

Vulnhub:BOSSPLAYERSCTF: 1

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 dirmap 命令执行漏洞 反弹shell 提权 系统信息收集 get root 信息收集 arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:50:56:2f:dd:9…

我与C++的爱恋:内联函数,auto

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​ 一、内联函数 1.内联函数的概念 内联函数目的是减少函数调用的开销&#xff0c;通过将每个调用点将函数展开来实现。这种方法仅适用于那些函数体小、调用频繁的函数。 …

探索大数据时代下与云计算技术融合:实现企业级数据处理与分析的灵活性和效率性

引言&#xff1a; 关联阅读博客文章&#xff1a;深度剖析&#xff1a;计算机集群在大数据体系中的关键角色和技术要点 随着信息时代的到来&#xff0c;数据量的爆炸性增长已成为一种常态。企业、政府、科研机构等各个领域都面临着海量数据的收集、存储、处理和分析的挑战。在…

2024年福建三支一扶报名指南—照片<100kb

2024年福建三支一扶报名指南—照片<100kb

大日志精选案例四:某省级大数据集团日志审计优化实战解析

“在集团日常运营中&#xff0c;数据安全始终是我们关注的重点。过去&#xff0c;数据量大、处理速度慢&#xff0c;导致日志数据难以迅速获取和分析&#xff0c;影响业务决策。但自从引入聚铭大日志解决方案后&#xff0c;系统日志和用户行为数据都得到了高效处理与存储。该方…

C易错注意之分支循环,悬空else,短路表达式,static

接下来的日子会顺顺利利&#xff0c;万事胜意&#xff0c;生活明朗-----------林辞忧 前言&#xff1a; c语言中一些关于分支循环中continue常混淆&#xff0c;悬空esle问题&#xff0c;短路表达式&#xff0c;static ,extern在使用时稍不注意就会出错的点,接下来我们将介绍…

数据结构:排序

排序的概念 1.概念 就我当前所认识的排序来说。排序是把一串相同类型的数据&#xff0c;按照升序或者降序排列起来的操作。 以下介绍的排序大多可以排列不限于整型和文件&#xff0c;但也有一些算法有较明显的局限性。 2.稳定性 如果在排列之前&#xff0c;一组数据中&…

Airtable、pyairtable

文章目录 一、关于 AirtableAirtable 公司历史诞生发展 产品方向产品层级国内模仿者竞争对手关于 API Key价格 二、关于 pyairtable安装快速使用 一、关于 Airtable 官网&#xff1a;https://www.airtable.comgithub : https://github.com/AirtableAirtable AI &#xff1a; h…

搜索最短路/最小步数问题

文章目录 搜索专题之最短路/最小步数迷宫问题【题目描述】【输入样例】【输出样例】【AC代码】 武士风度的牛【题目描述】【AC代码】 抓住那头牛【题目描述】【AC代码】 魔板【题目描述】【AC代码】 搜索专题之最短路/最小步数 迷宫问题 【题目描述】 【输入样例】 5 0 1 0 …

【Clang+LLVM+honggfuzz学习】(一)LLVM简介、安装和第一个Hello Pass

本文结构&#xff0c;PS:根据需要选择观看哦 1. 前言参考 2.简介传统编译器架构LLVM架构 3. LLVM安装版本准备官网源码下载git下载安装过程 4. 写一个LLVM Pass旧Hello Pass实现&#xff08;legacy PM version&#xff09;新Hello Pass实现&#xff08;Using the New Pass Mana…

GPT4不限制使用次数了!GPT5即将推出了!

今天登录到ChatGPT Plus账户&#xff0c;出现了如下提示&#xff1a; 已经没有了数量和时间限制的提示。 更改前&#xff1a;每 3 小时限制 40 次&#xff08;团队计划为 100 次&#xff09;&#xff1b;更改后&#xff1a;可能会应用使用限制。 GPT-4放开限制 身边订阅了Ch…