前言
git作为一个开源的分布式版本控制系统。是由Linus Torvalds 在 2005 年为了更好地管理 Linux 内核开发而创建。其设计目的是为了提高速度、数据完整性以及支持非线性开发模型。
学git的目的
当我们想去大厂工作时,首先受到来自面试官的压迫感。而关于git的基础作用就是其中必考的一点。git是大厂程序员的必备技能,如果连git操作都不会。那么在工作时提交代码,完成项目的效率就会很低。
另外,在我们工作中偶尔会碰到电脑损坏的时候,此时如果我们用git提交保存了代码,那么会保存代码的版本,而且非常安全,电脑损坏也不会对代码造成影响
因此,我们必须学习git。接下来,我们将正式开始介绍git的相关操作。
内置文档
当我们想进行一个操作但不知道对应的命令,或者对命令的作用不是很明确时,我们可以输入git help此时,程序会弹出以下内容:
这里包含了git中所有命令。我们可以从中找寻自己所需要的。
git中有内置的vi编辑器,我们可以通过长按J,K进行上下翻页,按q退出程序
在输入git help -a时候,程序会列出所有命令的名单
再往下走想深入了解某个命令,输入
git help add ...这里我们以config为例子,此时会进入这样的页面
我们可以从中查询自己需要的。
能进行这样操作的原因是因为git有内置文档,可以直接在程序页面就使用。
所以当面试官问你:你是如何了解git命令的作用和参数的?
我们不要单纯的回复:一些命令类似git add的答案
而是要回答:我使用git help内置文档去帮助我的学习
代码仓库
这是git中非常重要的一个理解。
一个程序进入代码仓库需要三个步骤:
文件夹 -> 开发目录(网站) -> 代码仓库()
这样做的好处有什么呢?
项目代码的版本(version)。 git关注的是代码的版本
时光穿梭机 文件的任意版本 有时候我们要回退。
那么,当面试官问你仓库里的是什么时。
不要傻傻的回答:文件!如果这样做了,大概率已经挂了。
注意!!仓库里并不是文件,而是文件的版本!,因为git关注的就是代码的版本。
仓库的由来
那么问题随之而来,代码仓库是如何形成的呢?、
答案是你意想不到的简单:
当我们初始化git时git init,会出现一个.git目录,这就是我们需要的代码仓库。
我们添加的git相关内容就放在.git目录中。
重要操作
git中命令的重要性也有高低之分。我们来讲一个相对重要的操作。
git config
这在公司里是非常重要的一个命令,大家都有自己对应的工作内容,而git config配置 操作留下了责任人 ,具有多人协作的思想。这样当各人提交自己写的内容时,老板就可以知道是谁提交的代码。我们可以这样配置
git config --global user.name ""
git config --global user.email ""
本地 远程 比对
配置, --global 全局
想要查看信息输入正确了没,我们可以输入git config --list
可得到这个页面
这样就可以看到自己输入的信息对不对了。
git status
这个是最重要的一个命令了,也是我们最常用的一个。
让我们了解当前仓库的状态,摸鱼后还能人间清醒
若有文件没有及时上传,会显示
on branch main 在主分支上 默认分支
untracked files 未追踪的文件 还没有纳入版本管理
此时我们用git add ..加文件后,则会显示
changes to be commited:文件被添加至暂存区,但并未提交。
因为添加到仓库是一件比较严谨的事情。
- git add file
将文件的当前版本 先添加到暂存区
为什么需要暂存区,仓库两个概念
有后悔药可吃:当我们写了多个版本进入暂存区,但我们最后只能交一个最好的版本,如果没有暂存区直接提交了,删除起来会很麻烦。因为有了暂存区,我们只需输入git restore即可删除。
分几次add,然后一次性commit:
就像我们进货 , 一辆菜车(git add 多次) 买完了 (git commit 一次) 买好菜了。
git log --oneline
可以看我们的代码提交记录:
拓展
高级技巧与实践
对于大公司或大型项目来说,除了上述基本操作外,还需要掌握一些高级功能,比如:
-
标签管理:
git tag创建标签,用于标记重要版本。 -
冲突解决:当合并分支时发生冲突,需要手动解决。
-
分支策略:例如使用Feature Branch Workflow或者GitFlow等不同的工作流模式来管理项目的开发周期。
-
钩子脚本:利用
.git/hooks目录下的脚本实现自动化流程,如在提交前自动运行测试。
结语
掌握这些基本git用法,使我们可以快速的加入团队编程中,快速入门git。利于我们以后的发展,希望大家从中收获一些什么...