百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

这篇 Git 教程太清晰了,很多 3 年经验程序员都收藏了

wptr33 2025-10-02 09:03 20 浏览

引言

Git 是现代开发中不可或缺的版本控制工具,尤其适用于团队协作和代码管理。本文将带你了解 Git 的基础操作命令,包括 git initgit addgit commitgit diffgit log.gitignore 等,快速上手版本控制。


一、初始化仓库: git init

使用 Git 前,需先初始化一个本地仓库:

git init

执行后会在当前目录生成一个 .git 文件夹,Git 会在此目录下跟踪项目的变更记录。


#技术分享 二、配置用户信息

首次使用 Git 时,推荐设置用户名和邮箱:

git config --global user.name "xxxxx"
git config --global user.email "xxxx@qq.com"

加上 --global 会全局生效,仅对当前项目配置可以省略该参数。


三、代码暂存区(Staging Area)是什么?

Git 的提交操作分为两个阶段:暂存(staging)提交(commit)

  • 当你修改了文件,Git 并不会立即记录这些改动;
  • 你需要先使用 git add 命令,把改动“放进暂存区”,告诉 Git:“这些改动我准备好了,可以提交”;
  • 然后再使用 git commit 将暂存区的内容提交到本地仓库,记录为一个快照。

可以把暂存区类比为“快照准备区”,你可以反复修改文件、添加到暂存区,最后一口气提交,确保每次提交都是有意义的逻辑单元。

举个例子:

git add index.html
git add style.css
git commit -m "更新首页结构和样式"

小贴士:你可以分批使用 git add 管理暂存内容,按逻辑分组提交更利于协作和回溯。


四、查看当前状态: git status

在进行任何修改之前,查看当前仓库的状态是非常重要的。git status 是最常用的命令之一,能让你清楚了解哪些文件被修改了,哪些文件已加入暂存区,哪些文件未被跟踪。

git status

它的输出通常会分为三部分:

  1. 已暂存的文件 :这些文件已使用 git add 添加到暂存区,准备提交。
  2. 未暂存的文件 :这些文件被修改,但还未添加到暂存区。
  3. 未跟踪的文件 :这些文件是新创建的,Git 并未跟踪它们。

例如:

On branch main
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
        modified:   index.html
        new file:   style.css

Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: app.js

通过 git status ,你可以随时了解当前工作区和暂存区的状态,帮助你决定接下来的操作。


五、添加文件到暂存区: git add

当你修改或新增文件后,使用 git add 将其添加到 Git 的暂存区:

git add 文件名

也可以批量添加所有修改:

git add .

C 六、提交更改: git commit -m

将暂存区的内容提交至本地仓库:

git commit -m "提交说明"

-m 后面是提交信息,建议语义清晰,例如:

git commit -m "新增用户登录功能"

七、推送到远程仓库: git push origin main

本地提交之后,需要推送代码到远程仓库(如 GitHub、Gitee):

git push origin main
  • origin 是默认的远程仓库别名;
  • main 是目标分支名(如果你使用的是 master ,请替换);

提交后远程成员就可以拉取(pull)你最新的修改了。

如果你还没有远程仓库,请先去 GitHub / Gitee 创建一个,然后关联远程仓库地址:

git remote add origin https://github.com/yourname/your-repo.git

八、查看文件改动: git diff

commit 之前,可用 git diff 查看修改内容:

git diff

九、查看提交历史: git log --oneline

快速查看历史提交记录:

git log --oneline

输出示例:

e3f1a1b 添加登录功能
2c3d9a7 初始提交

十、忽略某些文件: .gitignore

在项目中,有些文件无需提交到 Git 仓库,例如缓存、编译结果、配置文件等。使用 .gitignore 文件可忽略这些文件:

# 忽略 node_modules 文件夹

node_modules/

# 忽略所有 .log 文件

*.log

# 忽略 .env 环境变量文件

.env

十一、重命名默认分支: git branch -M main

很多平台(如 GitHub)推荐使用 main 作为主分支名称:

git branch -M main

这样可以将默认分支由 master 改为 main


总结命令一览表

| 命令 | 作用 | | ---

| git init | 初始化仓库 | | git config | 设置用户名与邮箱 | | git status | 查看当前文件状态 | | git add | 添加改动到暂存区 | | git commit -m | 提交改动 | | git push origin main | 推送代码到远程 main 分支 | | git diff | 查看未提交的改动 | | git log --oneline | 查看提交历史 | | .gitignore | 忽略文件 | | git branch -M main | 重命名分支为 main |


写在最后

Git 是每个开发者都必须掌握的技能之一。掌握好这些常用命令,就能覆盖 90% 的使用场景。未来如果你要进行多人协作、分支合并、冲突解决,这些基础就是你的武器库。

--- 觉得实用就点个赞、关注、收藏支持一下吧

相关推荐

深度剖析 MySQL 数据库索引失效场景与优化策略

在互联网软件开发领域,MySQL数据库凭借其开源、高效等特性被广泛应用。而索引,作为提升MySQL查询性能的关键利器,能大幅加速数据检索。然而,在实际开发中,即便精心创建了索引,却常常遭遇索引失...

15分钟,带你了解indexedDB,这个前端存储方案很重要!

原文来源于:程序员成长指北;作者:Django强哥如有侵权,联系删除最近在给前端班授课,在这次之前的最后一次课已经是在2年前,2年的时间,前端的变化很大,也是时候要更新课件了。整理客户端存储篇章时模糊...

MySQL 面试总被问到的那些问题,你都懂了吗?

事务的四大特性是什么?首先得提一下ACID,这可是数据库事务的灵魂所在:原子性(Atomicity):要么全部成功,要么全部失败回滚。一致性(Consistency):确保数据在事务前后都处于一致状态...

Java 字符串常见的操作_java字符串总结

在Java当中,为字符串类提供了丰富的操作方法,对于字符串,我们常见的操作就是:字符串的比较、查找、替换、拆分、截取以及其他的一些操作。在Java中,有String,StringBuffer和St...

java学习分享:Java截取(提取)子字符串(substring())

在String中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。1.substring(intbeginIndex)形...

你必须知道的 7 个杀手级 JavaScript 单行代码

1.如果你需要一个临时的唯一ID,请生成随机字符串。这个例子将为你生成一个随机字符串:constrandomString=Math.random().toString(36).slice(2)...

MySQL 索引失效:原因、场景与解决方案

在互联网软件开发领域,MySQL作为一款广泛使用的关系型数据库,其性能优化至关重要。而索引,作为提升MySQL查询性能的关键手段,一旦失效,会导致查询效率大幅下降,影响整个系统的性能。今天,就来...

Axure9 教程:可模糊搜索的多选效果

一、交互效果说明1.点击话题列表中的话题选项,上方输入框内显示选择的话题标签,最多可选择5个标签,超出将有文字提示。2.点击输入框内已选择的话题标签的删除按钮,可以删除已选择的话题标签,并且该标签返回...

JavaScript字符串操作方法大全,包含ES6方法

一、charAt()返回在指定位置的字符。...

为什么MySQL索引不生效?来看看这8个原因

在数据库优化中,最让人头疼的事情之一莫过于精心设计的索引没有发挥作用。为什么会出现这种情况?这篇文章带大家一起探讨一些常见原因,方便大家更好地理解MySQL查询优化器是如何选择索引的,以及在出现类...

Kettle实现rabbitMQ的生产与消费_rabbitmq不支持顺序消费

文章目录一、Kettle为什么可以读取流数据?...

MySQL高频函数Top10!数据分析效率翻倍,拒绝无效加班!

引言:为什么你的SQL代码又臭又长?“同事3行代码搞定的事,你写了30行?”“每次处理日期、字符串都抓狂,疯狂百度?”——不是你不努力,而是没掌握这些高频函数!本文精炼8年数据库开发经验,总结出10个...

mysql的截取函数用法详解_mysql截取指定字符

substring()函数测试数据准备:用法:以下语法是mysql自动提示的1:substirng(str,pos):从指定位置开始截取一直到数据完成str:需要截取的字段的pos:开始截取的位置。从...

MySQL函数:字符串如何截取_mysql 字符串截取函数

练习截取字符串函数(五个)mysql索引从1开始...

数据集成产品分析(一)_数据集成工具有哪些

编辑导语:数据集成产品是数据中台建设的第一环节,在构建数据中台或大数据系统时,首先要将企业内部各个业务系统的数据实现互联互通,从物理上打破数据孤岛。本文作者对数据集成产品进行了分析,一起来看一下吧。数...