Git从入门到起飞(详细)
Git从入门到起飞
- Git从入门到起飞
- 什么是Git?
- 使用git前提(注册git)
- 下载Git
- 在Windows上安装Git
- 在macOS上安装Git
- 在Linux上安装Git
- 配置Git
- 配置全局用户信息
- 配置文本编辑器
- 创建第一个Git仓库
- 初始化仓库
- 拉取代码
- 添加文件到仓库
- 提交更改
- 推送
- Git基本操作
- 查看提交历史
- 比较文件差异
- 撤销更改
- 分支管理
- 创建和切换分支
- 查看远程分支
- 合并分支
- 删除分支
- 解决冲突
- 远程仓库
- 连接远程仓库
- 克隆远程仓库
- 推送和拉取更改
- 高级Git功能
- 标签
- 子模块
- Git最佳实践
- 分支策略
- Git工作流
- 总结
- 学习资源
Git从入门到起飞
Git是一个强大的版本控制系统,广泛用于跟踪和管理项目的代码变化。无论你是一名软件开发者、工程师还是项目经理,了解如何使用Git都是至关重要的技能。在本文中,我们将为您提供一个从下载到使用Git的完整指南。
什么是Git?
Git是一个分布式版本控制系统,它允许多人协作开发项目,并有效地跟踪文件的变化。无论是小型项目还是大型软件开发,Git都能提供强大的版本管理功能。
使用git前提(注册git)
-
访问Git托管服务的注册页面(如GitHub的注册页面)。
-
提供所需的信息,包括用户名、邮箱地址和密码。请确保使用一个有效的邮箱地址,因为你将需要通过邮箱验证你的账号。
-
完成注册过程,可能需要验证你的邮箱地址。
-
一旦注册成功,你就会拥有一个Git账号,可以在Git托管服务上创建远程仓库、协作开发项目等。
下载Git
首先,让我们从安装Git开始。Git在各种操作系统上都有版本可用。以下是在不同操作系统上安装Git的步骤:
在Windows上安装Git
-
访问Git官方网站:https://git-scm.com/download/win。
-
下载适用于Windows的Git安装程序。
-
运行安装程序并按照提示进行安装。在安装过程中,你可以选择Git的默认设置,或自定义配置。
-
安装完成后,在命令提示符或Git Bash中输入以下命令验证安装是否成功:
git --version
在macOS上安装Git
-
使用Homebrew安装Git。在终端中运行以下命令:
brew install git
-
安装完成后,验证安装是否成功:
git --version
在Linux上安装Git
Git通常可以通过包管理器进行安装,具体命令可能因Linux发行版而异。以下是一些示例:
-
在Ubuntu上安装Git:
sudo apt-get install git
-
在CentOS上安装Git:
sudo yum install git
-
在Fedora上安装Git:
sudo dnf install git
安装完成后,同样可以使用以下命令验证安装是否成功:
git --version
配置Git
一旦安装了Git,你需要配置一些基本信息,以便Git知道谁在提交代码。这包括设置用户名和邮箱地址。
配置全局用户信息
使用以下命令设置全局用户名和邮箱地址:
# 下面的用户名密码是你上面注册的git用户名密码
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
请确保将 “Your Name” 和 “youremail@example.com” 替换为你自己的姓名和邮箱地址。
配置文本编辑器
你可以选择一个喜欢的文本编辑器,Git会在需要输入文本消息时自动启动它。例如,如果你想使用VS Code作为文本编辑器,可以运行以下命令:
git config --global core.editor "code --wait"
创建第一个Git仓库
现在,让我们创建一个新的Git仓库并进行一些基本操作。
初始化仓库
首先,选择一个目录,然后在命令行中运行以下命令来初始化一个新的Git仓库:
git init
这将在选定的目录中创建一个名为.git
的隐藏文件夹,用于存储Git的配置和版本历史。
拉取代码
git pull
是一个常用的Git命令,它用于从远程仓库拉取(下载)最新的代码或提交到你的本地仓库。这可以确保你的本地代码与远程仓库保持同步。
基本的 git pull
命令的用法如下:
git pull origin main
这个命令做了两件事情:
- 从名为
origin
的远程仓库拉取最新的代码。 - 将远程仓库的
main
分支(或你指定的其他分支)合并到你的当前本地分支中。
如果你使用的是其他分支名称,可以将main
替换为你要拉取的分支的名称。
添加文件到仓库
将你的项目文件添加到Git仓库的暂存区,以便开始跟踪它们的更改。假设你有一个名为my_project.py
的文件,可以使用以下命令将其添加到暂存区:
git add my_project.py
你也可以使用git add .
命令将所有更改的文件添加到暂存区。
提交更改
一旦你将文件添加到暂存区,就可以使用以下命令将它们提交到仓库:
git commit -m "Initial commit"
在引号中的消息是本次提交的描述。请确保描述清晰明了,以便日后回顾历史记录时能理解这次更改的目的。
推送
如果您希望将提交的更改推送到远程仓库,使用以下命令:
# 当然这里的main是你分支的名称
git push origin main
这将更新远程main
分支。
至此,你已经完成了Git的基本设置和第一个提交。这只是Git的冰山一角。接下来,让我们探讨更多Git的基本操作和高级功能。
Git基本操作
查看提交历史
要查看项目的提交历史,可以使用以下命令:
git log
这将显示每个提交的详细信息,包括提交哈希、作者、日期和提交消息。
比较文件差异
如果想查看文件的具体变化,可以使用以下命令:
git diff
这将显示当前工作目录和最新提交之间的差异。
撤销更改
如果需要撤销对文件的更改,可以使用以下命令:
-
使用
git checkout
命令撤销单个文件的更改:git checkout my_project.py
-
使用
git reset
命令撤销已提交的更改:git reset HEAD~1
这只是Git的一些基本操作。接下来,我们将探讨分支管理、远程仓库和更高级的Git功能。
分支管理
Git的分支功能允许你在不影响主要项目的情况下进行实验性开发或修复错误。以下是分支管理的基本步骤:
创建和切换分支
要创建一个新分支并切换到它,可以运行以下命令:
git checkout -b feature-branch
这将创建一个名为feature-branch
的新分支并切换到它。
查看远程分支
-
查看远程分支列表:
使用以下命令可以查看远程分支的列表:
git branch -r
这会列出所有远程分支的名称。
-
查看远程分支的详细信息:
如果您想查看远程分支的详细信息,包括最新提交的哈希值和提交消息,可以使用以下命令:
git show remote/branch
请将
remote
替换为远程仓库的名称,branch
替换为远程分支的名称。
合并分支
一旦完成分支上的工作,你可以将其合并回主分支。使用以下命令:
# 这是切换分支到main
git checkout main
# 这是将feature-branch内容合并到main
git merge feature-branch
这将把feature-branch
的更改合并到main
分支中。
删除分支
删除本地分支:
使用 git branch -d
命令来删除本地分支。如果分支没有合并到当前分支,将会出现警告,此时可以使用 -D
选项来强制删除。
# 删除已合并的本地分支
git branch -d <branch-name># 强制删除未合并的本地分支
git branch -D <branch-name>
请将 <branch-name>
替换为您要删除的分支的名称。
删除远程分支:
使用 git push
命令来删除远程分支。您需要使用 --delete
选项来告诉 Git 您要删除分支。
# 删除远程分支
git push origin --delete <branch-name>
同样,请将 <branch-name>
替换为您要删除的远程分支的名称。这个命令会将删除操作推送到远程仓库,从而删除远程分支。
请小心使用删除分支的命令,因为删除后,分支上的提交将无法恢复。确保您已经备份了重要的分支或提交。
解决冲突
在合并分支时,可能会出现冲突。Git会提示你解决这些冲突,然后再次尝试合并。
远程仓库
Git还支持与远程仓库进行交互,这对团队协作和备份代码非常重要。
连接远程仓库
使用以下命令将本地仓库与远程仓库关联:
git remote add origin <remote-repo-url>
<remote-repo-url>
是远程仓库的URL。
克隆远程仓库
如果要获取现有的远程仓库的副本,可以使用以下命令进行克隆:
git clone <remote-repo-url>
这将克隆远程仓库到本地,并在本地创建一个与之相对应的目录。
推送和拉取更改
-
使用
git push
命令将本地更改推送到远程仓库:git push origin main
-
使用
git pull
命令从远程仓库拉取更改:git pull origin main
高级Git功能
标签
你可以使用标签来标记重要的提交。创建标签的命令如下:
git tag -a v1.0 -m "Version 1.0"
子模块
Git支持子模块,允许你将其他Git仓库嵌套到主仓库中。这在管理复杂项目时非常有用。
Git最佳实践
分支策略
常见的分支策略包括主分支、开发分支和特性分支。这些策略可以根据项目的需要进行调整。
Git工作流
有不同的Git工作流程,如Git Flow和GitHub Flow,它们提供了一套团队协作的最佳实践。
总结
Git是一个强大的版本控制系统,它可以在软件开发和项目管理中发挥关键作用。通过本文,你已经了解了Git的基本概念、安装和基本操作,以及一些高级功能和最佳实践。继续学习和实践Git,它将成为你项目管理工具箱中的重要工具。
学习资源
- Git官方文档
- GitHub Learning Lab
- Git教程 - 廖雪峰的官方网站
- Pro Git书籍
希望这篇博客对你有所帮助,让你更好地理解和使用Git。如果你有任何问题或需要进一步的帮助,请随时提问。愿你在Git的世界里取得成功!
相关文章:
Git从入门到起飞(详细)
Git从入门到起飞 Git从入门到起飞什么是Git?使用git前提(注册git)下载Git在Windows上安装Git在macOS上安装Git在Linux上安装Git 配置Git配置全局用户信息配置文本编辑器 创建第一个Git仓库初始化仓库拉取代码添加文件到仓库提交更改推送 Git基本操作查看提交历史比较…...

R读写parquet文件
什么是parquet文件 Apache Parquet是一个开源的,列存储的数据文件格式。 https://parquet.apache.org/ 在R里面,我们可以通过arrow包来读写它。 我们先安装一下arrow包,并加载它。 install.packages("arrow") library(arrow)读写…...

Java21 LTS版本
一、前言 除了众所周知的 JEP 之外,Java 21 还有更多内容。首先请确认 java 版本: $ java -version openjdk version "21" 2023-09-19 OpenJDK Runtime Environment (build 2135-2513) OpenJDK 64-Bit Server VM (build 2135-2513, mixed mo…...
【性能优化】虚拟懒加载(下拉滚动加载长列表)element-puls+el-table
目录 前言一、卡顿的原因?二、解决1、滚动懒加载2.官方 总结 前言 提示:这里可以添加本文要记录的大概内容: 在element-plus中,如果数据超过1k,就会感觉到明显的卡顿,应该是渲染的卡顿吧。反正我在请求回…...

一对多映射处理
8.3.1 、collection /** * 根据部门id查新部门以及部门中的员工信息 * param did * return */ Dept getDeptEmpByDid(Param("did") int did);<resultMap id"deptEmpMap" type"Dept"> <id property"did" column"did&quo…...

关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?
问题描述: 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候,把这个文件的位置改变了。导致,最后输出IDEA的时候,不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…...
蛇形填数 rust解法
蛇形填数。 在nn方阵里填入1,2,…,nn,要求填成蛇形。例如,n=4时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 解法如下: use std::io;fn main() {let mut buf String::new();…...
一文探索SD-WAN技术进阶后与MPLS的区别
在网络通信领域,随着云计算和大数据等新兴技术的快速发展,企业对于网络的可靠性、安全性以及带宽的需求越来越高。 SD-WAN(软件定义广域网)和MPLS(多协议标签交换)是两种不同的网络连接技术,它们…...

RocketMq(四)消息分类
一、普通消息 1、同步发送消息:指的是Producer发出⼀条消息后,会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率低。 二、顺序消息 三、延时消息...
ip地址怎么改网速快
在当今高度依赖互联网的时代,快速稳定的网络连接对于人们的生活和工作至关重要。然而,有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度,但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…...

植物大战僵尸各种僵尸攻略(四)
前言 此文章为“植物大战僵尸”专栏中的011刊(2023年9月第十刊),欢迎订阅。版权所有。 注意: 1.本博客适用于pvz无名版; 2.pvz指植物大战僵尸(Plants VS Zonbies); 3.本文以耗费低做标准&am…...

main函数中两个参数的作用
一般我们在使用C语言时不太用到main函数自带的参数,因此最常见的main函数就像下面这样。 int main() {...... }上面这种main函数是省略了其形参的,C语言中规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv,其中&…...

华为OD机试 - 连续字母长度 - 字符串(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明4、再输入5、输出6、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(…...

想要精通算法和SQL的成长之路 - 填充书架
想要精通算法和SQL的成长之路 - 填充书架 前言一. 填充书架1.1 优化 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 填充书架 原题链接 题目中有一个值得注意的点就是: 需要按照书本顺序摆放。每一层当中,只要厚度不够了,当前层最高…...

【ROS入门】ROS的核心概念
文章结构 通信机制节点(Node)——执行单元节点管理器(ROS Master)——控制中心话题通信——异步通信机制话题(Topic)消息(Message)——话题数据 服务通信——同步通信机制服务(Service) 话题和服务的区别参数(Parameter)——全局共享字典 文件系统功能包(Package&am…...

Python爬虫从端到端抓取网页
网页抓取和 REST API 简介 网页抓取是使用计算机程序以自动方式从网站提取和解析数据的过程。这是创建用于研究和学习的数据集的有用技术。虽然网页抓取通常涉及解析和处理 HTML 文档,但某些平台还提供 REST API 来以机器可读格式(如 JSON)检…...

这10款类似Stable Diffusion的ai绘图软件,你了解多少?
Stable Diffusion这款ai软件有哪些可以替代的软件?好用的类似Stable Diffusion的ai软件推荐,那么今天就跟着赞奇云工作站小编一起来看看吧。 什么是Stable Diffusion? 称为“Stable Diffusion”的文本到图像模型可以将任何文本转换为逼真、…...

部署ik分词器
部署ik分词器 案例版本:elasticsearch-analysis-ik-8.6.2 ES默认自带的分词器对中文处理不够友好,创建倒排索引时可能达不到我们想要的结果,然而IK分词器能够很好的支持中文分词 因为是集群部署,所以每台服务器中的ES都需…...

基于STM32+华为云IOT设计的智能垃圾桶
一、项目介绍 在商业街、小吃街和景区等人流密集的场所,垃圾桶的及时清理对于提供良好的游客体验至关重要。然而,传统的垃圾桶清理方式通常是定时或定期进行,无法根据实际情况进行及时响应,导致垃圾桶溢满,影响环境卫…...

板子接线图
1.ST-LINK V2接线 2.对抗板子刷蓝牙固件 接USB转TTL,用镊子短接两个孔 2.对抗板子用串口测试蓝牙AT命令 短接白色箭头,接TX,RX,电源...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...

Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...

Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...
Cursor AI 账号纯净度维护与高效注册指南
Cursor AI 账号纯净度维护与高效注册指南:解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后,许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器
从本章节开始,进入到函数有多个参数的情况,前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参,ECX是整型的第一个参数的寄存器,那么多个参数的情况下函数如何传参,下面展开介绍参数为整型时候的几种情…...