Git 入门指南:从新手到高手的完全指南

Git是一种强大的分布式版本控制系统,广泛应用于软件开发中。它的使用不仅可以帮助开发团队更好地管理代码,还可以提高团队协作效率和代码质量。随着软件开发的不断发展,版本控制成为了程序员必备的一项技能。

Git的基本概念

Git的基本概念对于理解和正确使用Git至关重要。下面回顾一下Git的核心概念:

版本库(Repository)

版本库是Git中最重要的概念之一,它是存储代码修改历史的地方。一个版本库可以包含多个文件和目录,并且记录了每个文件的每次修改。通过版本库,你可以查看、比较和恢复代码的各个版本。

提交(Commit)

提交是Git中记录代码修改的操作。每次修改代码后,你需要将修改提交到版本库中。每个提交都有一个唯一的标识符,称为提交ID。在提交时,你需要填写提交信息,描述本次修改的目的和内容。

分支(Branch)

分支是Git中用于并行开发的重要概念。通过创建分支,你可以在不影响主线开发的情况下,进行独立的工作。每个分支都是一个独立的代码版本,可以在分支上进行修改和提交。分支可以随时切换和删除。

合并(Merge)

在分支开发完成后,你需要将分支的修改合并到主线上。合并是Git中将不同代码版本合并成一个版本的操作。Git会自动尝试合并分支上的修改,但如果有冲突需要手动解决。

远程仓库(Remote Repository)

为了方便多人协作开发,通常将代码库存储在远程仓库中。远程仓库是一个中央存储库,可以通过网络协议访问。开发人员可以从远程仓库下载代码,将本地修改推送到远程仓库,并进行分支合并等操作。

Git常用命令

下面介绍一些常用的Git命令,帮助你进行基本的代码管理和团队协作。

git init

使用git init命令初始化一个新的Git版本库。该命令会在当前目录下创建一个.git隐藏目录,用于存储版本库的数据。

git init

git add

使用git add命令

将修改的文件加入到暂存区。暂存区是一个临时区域,用于存储待提交的修改。

git add filename

git commit

使用git commit命令将暂存区的修改提交到版本库。提交时需要填写提交信息,以便于后续查看代码的变化。

git commit -m "commit message"

git branch

使用git branch命令列出当前所有分支。该命令可以查看本地分支和远程分支。

git branch

git checkout

使用git checkout命令切换分支。该命令可以切换本地分支和远程分支。

git checkout branchname

git merge

使用git merge命令将指定分支合并到当前分支。该命令可以自动合并代码,也可以手动解决冲突。

git merge branchname

git pull

使用git pull命令将远程仓库的代码更新到本地。该命令可以自动下载代码,并合并到当前分支。

git pull origin master

git push

使用git push命令将本地代码提交到远程仓库。该命令可以自动上传代码到远程仓库,并合并到远程分支。

git push origin master

这些是Git中最常用的一些命令,掌握了这些命令,你就可以进行基本的代码管理和团队协作了。

Git实战

安装

首先,我们需要在本地安装Git。Git官网提供了Windows、MacOS、Linux等操作系统对应的安装包。安装完毕后,在命令行界面输入以下命令,检查是否安装成功:

git --version

配置

安装完毕后,我们需要对Git进行配置。在命令行输入以下命令,进行用户名和邮箱的配置:

git config --global user.name "Your Name"
git config --global user.email "Your Email"

仓库

Git仓库是Git存储代码的地方,可以本地创建仓库,也可以从远程仓库克隆。本地创建仓库的方法如下:

mkdir myproject
cd myproject
git init

提交

在创建完仓库后,我们可以添加文件到仓库,然后提交到Git仓库:

touch file.txt
git add file.txt
git commit -m "add file.txt"

分支

Git分支是Git管理代码的重要方式,可以将代码的不同版本保存到不同的分支中。创建分支的方法如下:

git branch dev

切换分支的方法如下:

git checkout dev

标签

Git标签是Git管理代码版本的一种方式,可以将代码某个版本打上标签,方便以后查找。创建标签的方法如下:

git tag v1.0.0

远程仓库

Git远程仓库是指存储在其他计算机或服务器上的Git仓库。可以通过以下命令将本地仓库推送到远程仓库:

git remote add origin git@github.com:你的github用户名/你的github仓库名.git
git push -u origin master

Git高级使用技巧

除了基本命令外,还有一些高级使用技巧可以帮助你更好地使用Git。

.gitignore文件

使用.gitignore文件可以忽略某些文件或目录的版本控制。在.gitignore文件中添加需要忽略的文件或目录名称即可。忽略一些无关的文件可以减少版本库的大小,提高代码管理的效率。

分支命名规范

为了方便管理和协作开发,推荐使用规范的分支命名方式。例如,feature/xxx表示功能开发分支,bugfix/xxx表示修复bug的分支。分支命名规范可以帮助开发人员快速定位分支的作用和目的。

提交信息规范

提交代码时,需要填写提交信息。为了方便查看和管理代码,推荐使用规范的提交信息格式。例如,[feat/bugfix/docs/refactor/style/test] commit message。提交信息规范可以帮助开发人员快速了解代码的变化和目的。

Git GUI工具

除了命令行界面,还有很多Git GUI工具可以使用。这些

工具可以帮助开发人员更方便地管理和操作Git版本库。常用的Git GUI工具有Sourcetree、GitHub Desktop等。

掌握了这些高级使用技巧,你可以更加灵活地使用Git,提高团队的协作效率和代码管理的质量。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

在这里插入图片描述

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

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

相关文章

华为云资源搭建过程

网络搭建 EIP: 弹性EIP,支持IPv4和IPv6。 弹性公网IP(Elastic IP)提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑…

【嵌入式】【GIT】如何迁移老的GIF到新的仓库时使用LFS功能并保持LOG不变

一、正常迁移流程 假设有仓库 ssh://old/buildroot-201902 需要迁移到新的仓库 ssh://old/buildroot-201902时,我们可以使用以下命令来完成: # 下载老的仓库 git clone ssh://old/buildroot-201902 # 向新的仓库上传所有的tags git push ssh://new/buildroot-201902 --tag…

成为一个优秀的测试工程师需要具备哪些知识和经验?

看到这个题目,头脑中马上就拆分出了3个小问题: 1、什么是优秀的测试工程师? 2、优秀测试工程师需要哪些知识? 3、优秀测试工程师需要哪些经验? 一个个讲解。 一、什么才是一名优秀的测试工程师呢? 什么才是…

window11最新版终于可以取消任务栏合并了

windows11一个软件开了多个窗口之后,会自动合并任务栏,很不方便选择其中一个窗口,且没有选项能关闭这一配置 今日发现,最新版完善了这一功能,现在可以关闭自动合并任务栏了 右击任务栏,选择任务栏设置选择…

python实现Excel自动化办公

准备工作 安装相关模块 pip install openpyxl lxml pillow 基本定义 工作簿:一个电子表文件为一个工作簿 活动表:用户当前查看的表活关闭Excel最后查看的表 sheet表 单元格 Excel数据读取操作 打开工作簿并创建一个对象: wb openpyxl.loa…

Asset private data

其使用的java链码是基于gradle7.0的。相比于其他环境下的java代码,多了一些限制: (1)逗号后面必须有空格,花括号前面必须有空格,运算符前后必须有空格 (2)类里面的set方法参数不能和类里面的成员变量名字…

OpenCV—自动驾驶实时道路车道检测(完整代码)

自动驾驶汽车是人工智能领域最具颠覆性的创新之一。在深度学习算法的推动下,它们不断推动我们的社会向前发展,并在移动领域创造新的机遇。自动驾驶汽车可以去传统汽车可以去的任何地方,并且可以完成经验丰富的人类驾驶员所做的一切。但正确地训练它是非常重要的。自动驾驶汽…

Qt 重写QSlider简单实现滑动解锁控件(指定百分比回弹效果)

组件效果图: 应用场景: 用于滑动解锁相关场景,Qt的控件鼠标监听机制对于嵌入式设备GUI可触摸屏依旧可用。 实现方式: 主要是通过继承QSlider以及搭配使用QStyleOptionSlider来实现效果。 注意细则: QStyleOption…

【Spring】Spring MVC请求响应

文章目录 1. 请求1.1 传递单个参数1.2 传递多个参数1.3 传递对象1.4 后端参数重命名1.5 传递数组1.6 传递集合1.7 传递JSON对象1.8 获取URL中参数1.9 上传⽂件1.10 获得Cookie1.11 获得Session1.12 获得Header 2. 响应2.1 返回静态界面2.2 返回数据2.3 返回HTML代码片段2.4 返回…

Unity地面交互效果——2、动态法线贴图实现轨迹效果

Unity引擎动态法线贴图制作球滚动轨迹 大家好,我是阿赵。   之前说了一个使用局部UV采样来实现轨迹的方法。这一篇在之前的基础上,使用法线贴图进行凹凸轨迹的绘制。 一、实现的目标 先来回顾一下,上一篇最终我们已经绘制了一个轨迹的贴图…

ZKP7.3 Linear-time encodable code based on expanders

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 7: Polynomial Commitments Based on Error-correcting Codes (Yupeng Zhang) 7.3 Linear-time encodable code based on expanders SNARKs with linear prover time Linear-time encodable code [Spielman’96][Druk-Ishai…

word页脚设置,页脚显示第几页共有几页设置步骤

word页脚设置,页脚显示第几页共有几页设置步骤: 具体步骤: 步骤1: 步骤1.1选择页脚---空白页脚 步骤1.2,在"[在此处键入]",直接输入你需要的格式,如 “第页/共页” 步骤1.3选择第“…