前言
学会Git
是我们走向程序员职业生涯的重要一步,今天在这里我和大家分享的是如何从小白的观点去理解Git
这个东西!首先我们要知道Git
是什么
之前博主已经写过Git三部曲了,它可以帮你基本的理解git命令的使用,但是还不够真正去面对面试官的深层次的问题,这篇算是加强篇,不侧向操作,但是侧向底层。推荐大家可以先去读第一篇,搞好git配置,再来听这个哟,不过都是很基础的,保证清晰易懂!
教你如何在vscode里玩转git操作(1)!!!(小白必看)
教你如何在vscode里玩转git操作(2)!!!(小白必看)
教你如何在vscode里玩转git操作(3)!!!(小白必看)
Git他是什么?
他是一个分布式版本控制系统 ,可以帮助你高效的管理项目变化历史,实现多人协作开发,将你的开发效率遥遥领先 !说的更加通俗易懂 的话就是它可以自动帮你去记录你每次文件版本的变化,不需要手动的去记录和合并每次代码的变化,如果你想看每次改动的版本和信息,也随时可以看到。如果后来发现某个版本更好,需要回退到呢个版本,Git
也可以轻松帮你做到!!
学习Git的几个理由
- 就如博主在上文提及的在面试中
Git
是默认作为你的一个基本功去提问的,所以它不允许你答错,换句话说这是我们必须要拿下的童子功 - 管理个人项目,使用它可以更好的维护自己的项目,还可以参与开源项目的贡献,一起致力于开源
- 进入到公司之后,开发项目需要用到Git协作开发
知道了所以然,让我们Git起来!
首先各位需要安装一个Git
,然后配置全局用户名和邮箱
arduino
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
在 Git
中,通过配置全局用户名和邮箱,可以确保每个提交都有一个明确的责任人 。这样,团队中的每个成员都可以被识别,老板也可以清楚地知道是谁 提交了代码。这不仅有助于追踪代码变更,还能提高团队的透明度和责任感。
将
"Your Name"
替换为您的真实姓名或昵称,将"you@example.com"
替换为您实际使用的邮箱地址。
之后我们开始介绍Git
,下面有张结构图,描述 Git 的基本结构和工作流程。这将帮助您理解 Git 是如何管理和跟踪代码变更的。
Git结构
本地仓库 (Local Repository)
本地仓库是存储在您计算机上的 Git 仓库。它包含了项目的所有文件、文件的历 史记录以及暂存区等。本地仓库是您进行日常开发的主要场所。
主要组成部分:
- 工作目录 (Working Directory) :这是您进行开发的地方,包含了项目的文件和子目录。
- 暂存区 (Staging Area/Index) :这是用来准备下一次提交的地方。当您执行
git add
命令时,文件的更改会被添加到暂存区。 - 本地仓库 (Local Repository) :这是一个隐藏的
.git
目录,包含了项目的全部历史记录和元数据,大家可以自行在项目根目录下查看它,当然你需要进行git init
之后才可以看到。
远程仓库 (Remote Rep。ository)
远程仓库通常托管在服务器上,如 GitHub、GitLab、Bitbucket 等。远程仓库主要用于团队协作,允许多个开发者共享和同步代码。
Git的命令如此繁多,怎么去学习Git的命令?
很多人第一个学会的git
指令想必都是 git add .
,它当前工作目录中所有修改过的文件和新文件添加到暂存区,准备进行下一次提交。但是我希望你第一个认识的是git help
,它可以帮助你学习git
命令.
(上面只是部分还未截全),这说明了什么,说明了,git
是存在内置文档的,你可以通过它去了解git的丰富指令
通过 git help xxx
,你可以获取任何 Git 命令的详细帮助信息,xxx可以是任何命令。 这里我们以git help add
为例子
他直接给了一个网页版的说明文档,非常nice
为什么要分暂存区,仓库区这两个概念?
后悔药
我们知道世界上是没有后悔药可以吃的,但是这样的设计可以让你提交代码时有更多的灵活性和后悔的机会
- 暂存区 :允许你逐步添加和审查更改,确保提交的内容准确无误。在将更改添加到暂存区之前,你可以随时修改或撤销这些更改。例如,如果你发现某个文件不应该被提交,可以使用
git reset <file>
将其从暂存区移除。 - 仓库区 :一旦提交到仓库,更改就会被永久记录下来。如果你需要撤销某个提交,可以使用
git revert
或git reset
命令。这提供了版本控制和历史记录的功能,确保每次提交都是有意义的。
通过这种设计,Git 让你在提交代码时有更多的控制和灵活性,减少了出错的风险。
分几次 add
,然后一次性 commit
假设你在开发一个功能模块,需要修改多个文件。你可以分多次将这些文件添加到暂存区,然后一次性提交。这有助于你更好地组织和管理更改,因为你的每次commit
都会生成独一无二的版本号 ,所以扽你将项目所需要的文件都添加到了暂存区之后,再 commit
才会方便你去记录每一次更新。 这里需要划重点
我们使用git log
是可以查看项目的提交历史记录,
注意呢个黄色的 是提交的哈希值,它一个唯一标识每次提交的字符串。 HEAD 它是 Git 中一个特殊的指针,指向当前分支的最新提交(即最近的一次提交)。他指向 master
分支。如果不想看这么多信息,还可以用 git log oneline
他会十分的简洁,没有那些个人信息和时间记录! 我们回到 分几次 add
,然后一次性 commit
这里,我来举个例子,如果你把暂存区当作砂锅 ,你要做菜,呢你肯定需要先把菜一个个分别 放进去,再炒出来出盘对吧。所以你把砂锅当作暂存区,仓库去就是盘子 ,你要炒一个辣椒炒肉,你肯定是先分几次去 add 菜进去,比如说:
- git add 辣椒
- git add 肉
- git add 大蒜
然后再去 git commit -m '辣椒炒肉来啦!' 。这样理解是不是就很nice了
通过分多次将文件添加到暂存区,然后一次性提交,你可以更好地组织和管理更改。每次提交都会生成独一无二的版本号,这有助于追踪和回溯项目的每一次更改。此外,这种方法还可以减少错误,确保提交的内容准确无误。
再介绍一下git的摄像头 git status
git status
是一个非常有用的命令,可以被视为 Git 的"摄像头",因为它能够实时拍摄并展示当前仓库的状态。通过 git status
,你可以清楚地了解以下信息:
- 当前分支:你正在哪个分支上工作。
- 已修改但未暂存的文件:哪些文件已被修改但尚未添加到暂存区。
- 已暂存的文件:哪些文件已添加到暂存区,准备提交。
- 未跟踪的文件:哪些文件是新的且未被 Git 跟踪。
通过这个命令,你可以确保在提交代码前一切都在掌控之中,减少出错的风险,确保一切都在计划范围之内呀,嘿嘿!
END
看完本文之后,相信你对git的了解会更上一层楼,Git 不仅仅是一个工具,它是一种帮助你高效管理项目变化历史、实现多人协作开发的强大武器。无论是个人项目还是团队合作,掌握 Git 都将大大提升你的开发效率和代码质量呀!希望大家可以彻底掌握它