news 2026/6/1 22:16:55

Git小白入门教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Git小白入门教程

Git小白入门教程

⭐️本篇blog 是b站 【【GeekHour】一小时Git教程】的学习记录笔记,感觉真的很不错~ 为了继续后一步的学习,我也记录一下~ 大家也可以去看看这个视频,很详细!
⭐️再推荐一个学习的实战(要有基础的,可以在学完上面的教程之后再去看这个~~)
在这之前你得先 安装一下Git然后才能开始使用它~

🙋首先明确一下什么是Git
🍎 Git 是一个流行的软件开发版本控制系统。它允许在存储库(repo)中管理代码的不同版本~ 提供远程仓库和本地仓库 是项目合作管理 记录学习代码等的必备工具!
🍌Git中本地仓库 和 远程仓库 两者也可以相互关联 下面就分别介绍本地仓库的管理命令和远程仓库的管理命令

🌿本blog主要是记录一些常用的Git命令~ 学习完这些基本就够用啦~
🚀建议大家需要边操作边学习 熟练起来 Git真的是程序员必备的一个工具的存在!
🌞对于后期的话,大家熟练了Git的原理之后,可以使用图形化的工具,比如VScode GitKraken等等等
b站 GitKraken教学


☘️首先在学习之前,建议美化一下git-bash终端~更好看 ~ 美化(当然不美化也没关系哈哈哈哈)

🐋对于powershell 的美化安利下面几个blog 真的亲测有效果~

blog1
scoop scoop工具
blog2

更新:
在vscode里面
由Get-PoshThemes 获取主题,

然后 notepad $PROFILE 去更改想要的主题名:

最终保存重启即可

文章目录

  • Git小白入门教程
    • 本地仓库的常用命令
      • 1.安装和配置
      • 2.新建仓库
        • 一些基本的Linux命令 的拓展
      • 3.工作区域和文件状态
      • 4.添加和提交文件
        • 查看仓库的状态 git status
        • 添加到暂存区​
        • 提交到仓库 git commit m “ 输入内容”
        • 查看提交记录 git log
      • 5.git reset 回退版本
        • git reset – –soft
        • git reset – – hard HEAD^
        • git reset –mixed HEAD^
        • 误操作了怎么办
      • 6.git diff 查看差异
        • 总结
      • 7.git rm 删除文件
      • 8.忽略文件
        • 举例子
    • Github的使用和远程仓库的操作
      • 1.SSH的配置和克隆仓库
        • 创建远程仓库
        • 配置ssh密钥
        • 克隆仓库
      • 2.本地仓库和远程仓库关联
        • 把本地仓库关联远程仓库
        • 远程仓库更新至本地仓库
      • 3. gitee 和gitlab
    • git中的分支
      • 1.创建合并分支
      • 2.解决冲突
      • 3.Rebase
        • merge和rebase
      • 4.工作流模型
        • Git工作流模型
        • Github Flow
  • VS code中的图形化界面

本地仓库的常用命令

1.安装和配置

你可以在任意的位置,比如D盘 learn-git目录下,右键点击 然后Git Bash here

//注意用户名如果有空格要用双引号括起来 没有的话就不用//这里主要是进行配置一下用户的基本信息 不配置也不影响使用 git config--globaluser.name"xi_guang"git config--globaluser.email xx@qq.com git config--globalcredential.helper store//用来保存用户名和密码 这样就不用每次都输入了 git config--global--list//查看配置的信息

配置完了大概就长这样

2.新建仓库

//创建本地仓库 git init//在当前目录创建仓库 git init my-repo//创建一个名为 my-repo的仓库//也可以从远程服务器上克隆一个已经存在的仓库 后面会说 ls-a//显示所有文件.git是隐藏目录 所以要用-a来显示所有目录 ls-altr//源自于下文扩展中的部分,git仓库具体的文件和目录

创建本地仓库

远程克隆仓库

一些基本的Linux命令 的拓展
//ls命令 ls-l//以长格式显示当前目录中的文件和目录 ls-a//显示当前目录中的所有文件和目录,包括隐藏文件 ls-lh//以人类可读的方式显示当前目录中的文件和目录大小 ls-t//按照修改时间排序显示当前目录中的文件和目录 ls-R//递归显示当前目录中的所有文件和子目录 ls-l/etc/passwd//显示/etc/passwd文件的详细信息==================//关于删除命令 rm-rf 要删除的文件名或目录//删除当前目录下的所有文件及目录,并且是直接删除,无需逐一确认命令行为//删除文件名 test.txt:rm-rf test.txt//删除目录 test,不管该目录下是否有子目录或文件,都直接删除:rm-rf test/==============cp-rf repo repo-soft//把repo这个文件复制 重命名为 repo-soft//echo 命令 echo"hello">hello.txt//创建一个内容为hello的文件hello.txt//如果用一个>表示创建一个文件 覆盖当前的空白内容 如果该文件之前已经有了 就会覆盖 echo"hellohello">>hello.txt//文件hello.txt 追加内容hellohello echo"helo">tmp/hello.txt//在tmp文件夹中创建一个hello.txt的文件

3.工作区域和文件状态

工作区 Working Directory

git add ↓

暂存区 Staging Area/Index

git commit ↓

本地仓库 Local Repository

4.添加和提交文件

git status//查看仓库的状态=====================git addfile.txt//file.txt添加到暂存区 git add*.txt//把所有工作区的文件通配符后缀为.txt的文件都提交到暂存区里 git add.//把当前文件的所有文件都添加到暂存区 git rm--cachedfile.txt//file从暂存区重新回收到工作区======================git commit//只会提交暂存区中的文件而不会提交工作区中的其他文件//注意 git commit 需要用-m来指定提交时的信息 否则会进入vim界面//vim界面 vim是文件编辑器 i 进入编辑模式 Esc 退出回命令模式:wq 保存退出 git commit-m"第一次提交"//把暂存区里面的文件全部提交到仓库区 交互信息为:第一次提交 git commit-am"第一次提交"//一次完成添加暂存和提交两个动作===============git log//查看提交记录 git log--oneline//查看简介的提交信息==============git ls-files//查看仓库里的文件
查看仓库的状态 git status

🌿

在该目录下创建一个文件

查看文件内容

下面可以再看一下状态

添加到暂存区​

🌱

提交到仓库 git commit m “ 输入内容”

🌴

查看提交记录 git log

🌲

查看简介的提交信息

5.git reset 回退版本

回退版本 回退到某一个版本

方便理解:

我们分了三次提交 三个文件

这个适合想要回退到上一个版本的话,就需要使用git reset命令

git reset – –soft

用soft 参数回退到了上一个版本:工作区和暂存区的内容都 不会 被清空

而file3是第三个版本(第三次)才添加的,所以对于第二个版本来说,file3文件就是一个新的文件。这个时候可以修改file3里面的内容,然后重新添加暂存和提交就可以了

git reset – – hard HEAD^

用hard 参数回退到了上一个版本:工作区和暂存区的内容都 会 被清空c

git reset--hard b4d139//将仓库回退到某一时间点
git reset –mixed HEAD^

用mixed 参数回退到了上一个版本:工作区的内容不会被清空 暂存区的内容 会 被清空

误操作了怎么办
git reflog//查看操作的历史记录 找到误操作之前的版本号//然后 回退一下到原来的版本

git reset --hard +要回退到的版本号

6.git diff 查看差异

1️⃣查看工作区 暂存区 本地仓库之间的差异

2️⃣查看不同版本之间的差异

3️⃣查看两个分支之间的差异

git diff//后面什么都不加默认 工作区和暂存区之间的差异 显示发生更改的文件以及更改的详细的信息 git diff HEAD//比较工作区和版本库之间的差异 git diff--cached//比较暂存区和版本库之间的差异 git diff 版本号ID 版本号ID//比较两个版本之间的差异//HEAD 指向分支的最新提交节点 git diff 版本提交ID HEAD//当前版本号和HEAD之间的差异 git diff HEAD~HEAD//比较当前版本和上一版本之间的差异 git diff HEAD~3HEAD//比较当前版本和上3个一版本之间的差异 git diff HEAD~3HEAD file3.txt//比较file3.txt 当前版本和上3个一版本之间的差异

举个🌰

比如原来的仓库状态 和文件内容

修改file3.txt的内容后 用git diff 查看一下

git diff 不加任何东西 比较的是工作区和暂存区之间的差异 由于我们在工作区进行修改了file3.txt 所以会存在差异

如果没有任何内容就是说工作区和暂存区 是相同的 没有差异 就不会返回值

总结

7.git rm 删除文件

//方法一 git rm file2.txt//把工作区和暂存区中的file2.txt文件一起删除//!!同时记得提交 否则删除的文件在版本库中还是存在的//方法二//先从工作区删除 然后再从暂存区删除 rm file2.txt git add file2.txt git rm--cached file1.txt//从暂存区和版本库中删除 但是保留在工作区 git rm-r*//递归删除某个目录下的所有子目录和文件

8.忽略文件

忽略掉一些不应该被加入到版本库中的文件,起到节约内存的作用

系统或者软件自动生成的文件
编译产生的中间文件和结果文件
运行时生成日志文件、缓存文件、临时文件
涉及身份、密码、口令、秘钥等敏感信息文件

忽略日志文件和文件夹

忽略所有.class文件

忽略所有.o文件

忽略所有.env文件

忽略所有.zip和tar文件

忽略所有.pem文件

echo file1.log>.gitignore//把file1.log添加到.gitignore文件 这样就不会显示file1.log的具体内容了(看不见啦)//编辑.gitignore的内容 增加*.log 就可以把所有.log文件写入gitignore 也就是相当于忽略了所有的log 文件 但是需要注意的是 只对暂存区和工作区的文件有效 对于已经提交到仓库里的文件是没有效果的 vi.gitignore//通过vim编辑gitignore文件的内容即可

.gitignore可以忽略通配符 文件夹等的内容

忽略通配符:*.log

忽略文件夹 文件夹名称/ 比如:tmp/

⭐️同时github上提供了各种常用语言的忽略文件的模板可以新建仓库时直接使用https://github.com/github/gitignore

举例子

🌰
首先创建两个文件.log 文件

看看此时仓库的状态:可以看到两个文件都还未被添加到暂存区

现在使用.gitignore 同时看看.gitignore文件具体的内容

此时仓库的状态

现在将工作区的文件添加到暂存区并提交到仓库中:可以看到里面没有我们的access.log文件

Github的使用和远程仓库的操作

1.SSH的配置和克隆仓库

创建远程仓库

首先点击左上角的猫猫头像

然后再点击new

进入创建的页面之后 配置

点击create repository后来到以下界面

https和ssh:远程仓库地址的两者方式

https:本地仓库push到远程仓库的时候需要验证用户名和密码

🐬 ssh:不要验证用户名和密码 但是需要在GitHub上配置添加SSH公钥的配置 更安全也更方便

这里我们使用ssh 方式

配置ssh密钥

回到根目录 也就是home 一般是c盘

cd.ssh//进入ssh目录 ssh-keygen-t rsa-b4096//生成ssh密钥-t rsa 是协议-b4096大小是4096

此时如果你是第一次配置 直接回车即可

如果前面已经配置过 就会覆盖掉前面已经配置的密钥 这个时候不要直接回车 输入一个新的文件名 比如test 再回车

再输入密码

最后看看具体的内容

打开公钥文件 复制公钥文件的内容

打开GitHub 点击你的右边的头像 点击setting 来到下面的页面:

把公钥复制即可

如果你是第一次配置的话 那么现在配置部分就已经结束啦!

但是你是之前配置过的 还需要回到命令行再增加下面的内容

//当我们访问GitHub的时候 指定使用SSH下的test这个密钥 vi config#githubHost github.com HostName github.com PreferredAuthentications publickey IdentityFile~/.ssh/test
克隆仓库

回到本地仓库 执行git clone

这样就克隆成功了
如果仓库比较大的话,可以设置克隆的深度:

git clone git@xxx.git --depth 10 //就是克隆最近10次提交的结果

2.本地仓库和远程仓库关联

现在我们在这个仓库中添加一个文件 但是这个文件只是在本地仓库中起效果 远程仓库中并没有改变 所以需要把这个本地仓库的状态同步给远程仓库

git push//把本地仓库的内容同步到远程仓库
把本地仓库关联远程仓库
//以下步骤逐一执行可实现本地仓库push 到远程的另一个仓库 git remote add origin git@github.com:xi-song/first-repo.git//把本地仓库和远程仓库关联 git remote-v//查看本地仓库和远程仓库的别名m和地址 git branch-M main//指定分支的名称为main git push-u origin main:main//-u 是upstream把本地的main分支和远程的orign仓库的main分支关联起来//main:main 把本地仓库的main 分支 推送给远程仓库的main 分支 git push-u origin main//如果本地仓库的分支和远程仓库的分支相同就只写一个main就可以了 即

当前仓库对于远程仓库的别名为origin

远程仓库更新至本地仓库

首先可以来到远程仓库的页面 添加一个文件

这个时候本地仓库还没有这个文件 这个时候就要用pull命令来拉去远程仓库修改的内容

git pull origin main//拉取仓库别名为origin的main 分支 拉取到本地进行合并 git pull//直接默认为 拉取仓库别名为origin的main 分支 拉取到本地进行合并============git fetch//只是获取远程仓库的修改,但是不会自动合并到本地仓库中,而实需要我们手动合并

执行git pull 之后 Git 会自动为我们执行一次合并的操作,如果远程仓库中的修改内容和本地仓库中的修改内容没有冲突的话,那么合并操作就会成功。否则合并操作就会因为冲突而失败。

3. gitee 和gitlab

用法大差不差 后续可以继续学习

git中的分支

分支 就像是树的分叉一样

比如同一个项目–记作项目A 需要几个人共同协作,那么这几个人都可以对这个项目仓库在各自的分支进行操作,当然,最后完工的时候,可以合并。各个分支互不影响,这样就能实现合作啦!

A项目

  1. a分支
  2. b分支
  3. c分支

1.创建合并分支

git branch//查看分支 git branch dev//创建一个名字叫dev的分支 git switch dev//从当前分支切换到dev分支 git merge dev//将dev分支合并到当前所在的分支 git branch-d dev//删除dev分支(此时dev未合并) git branch-D dev//删除dev分支(此时dev已合并) git log--oneline--graph--decorate--all//查看图形化的分支//这句太长了 可以定义一个别名 比如graph 那么下一次调用的时候直接输入graph 就可以了 alias graph="git log --oneline --graph --decorate --all"git checkout-b dev 244d3//之前dev删除了,现在把dev 分支恢复回来 dev 244d3 后面是它提交的ID 可以在git log 里面看提交的ID

2.解决冲突

两个分支修改了同一个文件的同一行代码,最后要合并成大项目的时候,git就不知道应该保留那个分支的修改内容了,也就需要手动解决冲突

3.Rebase

Rebase也是将不同的分支整合在一起

可以在任意分支执行base记录

当前分支是main分支,切换到dev分支 :git switch dev 然后变基到main 分支

当前分支是dev分支,切换到main分支 :git switch main 然后变基到dev

merge和rebase

🍎merge

优点:不会破坏原分支的提交历史,方便回溯和查看。

缺点:会产生额外的提交节点,分支图比较复杂。

适合协同工作

🍐rebase

优点:不会新增额外的提交记录,形成线性历史,比较直观和干净

缺点:会改变提交历史,改变了当前分支branch out的节点。避免在共享分支使用。

适合个人工作管理

4.工作流模型

Git工作流模型

1️⃣main分支

项目的核心分支 应该保证项目中的主线分支的代码时可发布的。一般来说主线发分支会部署到生产环境中。

主线分支的代码不允许直接修改,只能通过合并分支的方式进行修改,每次合并分支都建议生成一个新的版本号,这样可以方便追踪和回溯。可以通过给git tag 命令来标记版本号。

【版本号规则】
主版本(Major Version) :主要的功能变化或重大更新;
次版本(Minor Version) :一些新的功能、改进和更新,通常不会影响现有功能;
修订版本: (Patch Version):一些小的bug修复,安全漏洞补丁等。通常不会更改现有功能和接口。

2️⃣hotfix 问题修复分支

3️⃣ develop开发分支 用于开发和测试

4️⃣ feature功能分支​

5️⃣release发布分支​ 预发布分支

Github Flow

分支命名

推荐使用带有意义的描述性名称来命名分支

版本发布分支/Tag 示例:v1.0.0

功能分支示例: feature-login-page修复分支 示例:hotfix- #issueid-desc

分支管理

定期合并已经成功验证的分支,及时删除已经合并的分支

保持合适的分支数量

为分支设置合适的管理权限

VS code中的图形化界面

大家可以探索一下 很方便!需要充分理解git的原理之后用起来会很顺利~

需要下载的拓展有

🌈好啦!完结~ 欢迎大家留言讨论(点个赞点个赞~ 嘻嘻~)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/1 22:16:43

基于PHP的抖音无水印视频解析技术实现与架构解析

基于PHP的抖音无水印视频解析技术实现与架构解析 【免费下载链接】kill-douyin-watermark-online 抖音视频无水印解析傻瓜式下载,仔细看源码可以集成到你自己的程序中。 项目地址: https://gitcode.com/gh_mirrors/ki/kill-douyin-watermark-online 抖音无水…

作者头像 李华
网站建设 2026/6/1 22:14:07

收藏!AI时代,这10类工作将越来越香,普通人如何避开内卷安稳立足?

文章指出,AI正逐渐取代简单重复性工作,如文案、数据录入、客服等,而需要人际交往、复杂问题解决、情感关怀和创新能力的工作将更加有价值。普通人应关注能“搞定人”的销售、能解决复杂问题的师傅、能照顾人情绪的服务者、能带团队的管理者以…

作者头像 李华
网站建设 2026/6/1 22:10:05

基于Arduino与树莓派的室内空气质量监测系统全栈开发指南

1. 项目概述:打造一个看得见的“空气管家”几年前,为了搞清楚家里书房在长时间工作后空气质量到底有多糟糕,我萌生了动手做一个监测设备的想法。市面上成品要么功能单一,要么数据封闭,无法满足我实时查看、历史回溯以及…

作者头像 李华
网站建设 2026/6/1 22:06:56

AI时代,文案人被“卷”到怀疑人生:我们还能干过AI吗?

文章讲述了AI时代下,职场人面临的巨大挑战。作者以自身经历为例,描述了作为文案策划,使用AI工具完成视频创作后的疲惫感。AI虽能提升效率,但人的创造性、逻辑性和情绪感知仍是AI无法替代的核心优势。文章呼吁职场人保持学习&#…

作者头像 李华
网站建设 2026/6/1 22:02:58

Onekey Steam清单下载工具:终极游戏管理解决方案

Onekey Steam清单下载工具:终极游戏管理解决方案 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 想要轻松管理Steam游戏清单?Onekey Steam清单下载工具为您提供简单高效的…

作者头像 李华