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,电源...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
