wacsii头像
【Linux基础开发工具(五)】Git版本控制器从入门到实战:核心操作三板斧与新手避坑指南封面图

【Linux基础开发工具(五)】Git版本控制器从入门到实战:核心操作三板斧与新手避坑指南

目录

一、前言

二、Git版本控制器

1.版本控制器

2.git发展历史

3.git安装&&git clone

三、git操作三板斧

1.git add

2.git commit

3.git push

4.三者的协作流程

四、首次使用git会遇到的问题

问题一:找不到 Git 仓库

问题二:命令格式错误与文件路径不符

问题三:未配置 Git 提交身份

附加问题:终端输入密码时出现乱码

五、小结


一、前言

关于Linux开发,博主已经向大家介绍了四个基础开发工具,贴在下面:

【Linux基础开发工具(一)】Linux包管理器与软件生态全解析:从国内镜像源到yum/apt实战-CSDN博客https://blog.csdn.net/wacsii/article/details/166788985?spm=1001.2014.3001.5501文章配图https://blog.csdn.net/wacsii/article/details/166788985?spm=1001.2014.3001.5501【Linux基础开发工具(二)】Vim编辑器从入门到实战:模式、命令、配置与常见问题全解析-CSDN博客https://blog.csdn.net/wacsii/article/details/166883124?spm=1001.2014.3001.5501文章配图https://blog.csdn.net/wacsii/article/details/166883124?spm=1001.2014.3001.5501【Linux基础开发工具(三)】gcc/g++编译流程、条件编译与动静态链接-CSDN博客https://blog.csdn.net/wacsii/article/details/167920998?spm=1001.2014.3001.5501文章配图https://blog.csdn.net/wacsii/article/details/167920998?spm=1001.2014.3001.5501【Linux基础开发工具(四)】Linux自动化构建:make/makefile入门与核心原理详解-CSDN博客https://blog.csdn.net/wacsii/article/details/168250430?spm=1001.2014.3001.5501文章配图https://blog.csdn.net/wacsii/article/details/168250430?spm=1001.2014.3001.5501关于版本控制器git,是很多企业必备的组件,本篇仅向读者介绍一些git最基础的认识和指令操作~

二、Git版本控制器

场景引入:

在我们的大学生活当中,特别是我们计算机专业的,肯定被实验报告折磨的头大。关于实验报告,老师会规定各种各样的格式——字号设置,标题设置...我们大多数情况下,不可能一次就把所有格式都写对。

你是小王,你有一个同学叫张三。张三特别爱在老师面前刷存在感,相信大家肯定身边都有这样的同学。老师布置了一个作业,说让提交一个实验报告,张三特别积极,拿着自己第一遍写的实验报告高高兴兴的去找老师了。老师骂他了一顿,说他写的啥都不是,格式什么都不对。张三回宿舍赶紧写了第二遍又去找老师,老师说又不对,如此循环。张三去找了好多遍老师,老师有点烦了,说:“好吧,张三,你把你的第一版实验报告给我,我就给你算通过。”但是张三改了这么多次,从来没有做过修改记录,不知道哪些地方改了,哪些地方没改,他怎么找到自己的第一版呢?此时张三在宿舍冥思苦想,抱着脑袋怎么也想不出来第一版是怎么写的。

而你是小王,你吸取了张三的经验去找老师,第一次老师给你指出错误,然后你修改后再去找老师提交第二版,第三版,第四版...如此循环。但是你留了一个心眼,每一版做了哪些修改你都记录着。无论老师最后问你要哪一版实验报告你都能提供出来。

每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤ 。 但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越 多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么吗?
⽂档如此,我们写的项⽬代码,也是存在这个问题的!!

1.版本控制器

所以为了能够更方便我们管理这些不同版本的文件,便有了版本控制器。 所谓的版本控制器,就是能让你 了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀ 个 可以记录⼯程的每⼀次改动和 版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的⽂件,例如 doc、excel、dwg、 dgn、rvt等等。对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

2.git发展历史

同⽣活中的许多伟⼤事物⼀样,Git 诞⽣于⼀个极富纷争⼤举创新的年代。
Linux 内核开源项⽬有着为数众多的参与者。绝⼤多数的 Linux 内核维护⼯作都花在了提交补丁和保 存归档的繁琐事务上(1991−2002年间)。到 2002 年,整个项⽬组开始启⽤⼀个专有的分布式版本 控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使⽤ BitKeeper 的权⼒。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使⽤ BitKeeper 时的经验教训,开发出⾃⼰的版本系统。 他们对新的系统制订了若⼲⽬标:
1.速度
2.简单的设计
3.对⾮线性开发模式的强⼒⽀持(允许成千上万个并⾏开发的分⽀)
4.完全分布式

5.有能⼒⾼效管理类似 Linux 内核⼀样的超⼤规模项⽬(速度和数据量)
⾃诞⽣于 2005 年以来,Git ⽇臻成熟完善,在⾼度易⽤的同时,仍然保留着初期设定的⽬标。 它的速 度⻜快,极其适合管理⼤项⽬,有着令⼈难以置信的⾮线性分⽀管理系统。

3.git安装&&git clone

检查 Git 是否已安装

git --version

如果服务器已经安装了 Git,它会显示出版本号;如果提示 “command not found”,则说明尚未安装。

如果服务器没有 Git,你可以根据服务器的 Linux 发行版,使用对应的包管理器进行安装。常见命令如下:

sudo yum install git -y //CentOS / RedHat 

sudo apt-get install git -y //Ubuntu / Debian 

创建一个gitee仓库,推荐设置如下:

在创建好的项⽬⻚⾯中复制项⽬的链接, 以备接下来进⾏下载.
下载项⽬到本地
git clone [url]

三、git操作三板斧

把仓库克隆到本地之后,日常开发中最高频的操作其实就是三个命令:git add、git commit、git push。它们分别对应「暂存改动」「提交到本地仓库」「推送到远程仓库」三个阶段,下面逐个说明。

1.git add

作用:把工作区中修改过或新增的文件添加到暂存区(Index),告诉 Git「这些改动我要纳入下一次提交」。

# 添加指定文件到暂存区
git add hello.c
添加当前目录下所有改动(新增、修改、删除)
git add .
查看暂存区状态,确认哪些文件已被暂存
git status

需要注意,git add 只是把改动放进暂存区,并没有真正生成版本记录,此时文件仍处于「已暂存但未提交」的状态。

2.git commit

作用:把暂存区中的内容打包成一次提交,生成一个唯一的版本记录,保存在本地仓库中。

# 提交暂存区内容,并填写提交说明
git commit -m "feat: 实现字符串反转函数"
跳过暂存区,直接把已跟踪文件的修改提交(新增文件仍需先 add)
git commit -am "fix: 修复数组越界问题"
查看提交历史
git log --oneline

提交说明建议写清楚「做了什么、为什么这么做」,方便日后回溯问题。每次 commit 都会在本地留下一个可回退的版本节点,这也是 Git 相比「复制粘贴备份」最大的优势。

3.git push

作用:把本地仓库中已经提交的版本推送到远程仓库(如 Gitee、GitHub),实现备份与多人协作共享。

# 首次推送并建立本地分支与远程分支的关联
git push -u origin master
之后直接推送当前分支
git push
拉取远程最新代码并合并到本地(推送前建议先执行)
git pull

如果远程仓库的代码比你本地新,直接 push 会被拒绝,此时应先 git pull 合并远程改动,解决可能的冲突后再推送。

4.三者的协作流程

三个命令并不是孤立的,它们串成了一条从「本地改动」到「远程共享」的完整链路:

flowchart LR
    A[工作区 修改文件] -->|git add| B[暂存区 Index]
    B -->|git commit| C[本地仓库 .git]
    C -->|git push| D[远程仓库 Gitee/GitHub]
    D -->|git pull| A
  • git add:挑选要提交的改动,从工作区搬进暂存区。
  • git commit:把暂存区的内容固化为一个本地版本,形成可回溯的历史节点。
  • git push:把本地版本同步到远程仓库,让团队成员都能看到并拉取。

一个典型的日常开发循环就是:改代码 → git add . → git commit -m "说明" → git pull → git push。理解这三步各自负责的范围,就能避免「改了没提交」「提交了没推送」这类常见问题。

四、首次使用git会遇到的问题

问题一:找不到 Git 仓库

  • 报错提示:fatal: not a git repository (or any of the parent directories): .git

  • 原因:您在执行命令时位于家目录 ~,该目录下没有 .git 隐藏文件夹,因此 Git 无法识别。您真正的 Git 仓库在 ~/Linux 目录中。

  • 解决方案:使用 cd Linux 命令进入正确的项目目录后再执行 Git 操作。可以使用 ls -al 命令检查目录下是否存在 .git 文件夹来确认。

问题二:命令格式错误与文件路径不符

  • 报错提示:git: 'add.' is not a git command 及 fatal: pathspec 'test.c' did not match any files

  • 原因:

    1. 命令缺少空格,应写为 git add .。

    2. 虽然在 ~/Linux 目录下成功识别了 Git 仓库,但目标文件 test.c 仍然存放在上一级家目录中,不在当前仓库内。

  • 解决方案:

    1. 将文件移入仓库:cp ../test.c .(或使用 mv 移动)。

    2. 正确添加文件:git add test.c 或 git add .。

问题三:未配置 Git 提交身份

  • 报错提示:Author identity unknown / fatal: unable to auto-detect email address

  • 原因:首次使用 Git 未配置全局用户名和邮箱,Git 无法记录代码提交者的身份信息,因此拒绝提交。

  • 解决方案:在终端执行以下命令进行全局配置(替换为您自己的信息):

    bash

    git config --global user.name "田梦娴"
    git config --global user.email "1767064640@qq.com"

附加问题:终端输入密码时出现乱码

  • 现象:截图中出现 H^H^H^H^H 字符。

  • 原因:Linux 终端在输入密码(或令牌)时处于安全模式,不会显示任何字符。如果按退格键(Backspace),就会产生这类控制字符乱码。

  • 解决方案:输入密码或令牌时,直接盲打,完成后按回车。如果输错了,直接按 Ctrl + C 中断当前命令,重新执行即可。

五、小结

本文作为 Linux 基础开发工具系列的第五篇,主要围绕版本控制器 Git 的核心概念与实际应用展开。文章首先通过实际场景引入了版本控制的必要性,并简述了 Git 的诞生背景与分布式优势。随后,详细介绍了 Git 的安装与项目克隆方式,并重点拆解了日常开发中最高频的“操作三板斧”:git add(暂存改动)、git commit(本地提交)与 git push(远程推送),理清了从工作区到远程仓库的完整链路。

针对初学者首次接触 Git 极易踩坑的情况,文章在最后系统梳理了四大常见问题及其解决方案:

路径错误:未在包含 .git 的目录下执行命令导致找不到仓库。

命令与路径不符:命令拼写错误(如缺少空格)或目标文件不在当前仓库内。

身份未配置:未设置全局用户名和邮箱导致无法提交。

认证失败与终端乱码:Gitee 停用密码推送,需使用个人访问令牌或 SSH 密钥,以及终端密码输入无回显时的正确应对方式。

掌握 Git 的核心三板斧并避开这些新手常见错误,能够帮助开发者快速建立起规范的代码管理与版本迭代习惯,为后续的多人协同开发打下坚实基础。

创作不易,请各位读者一键三连!

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/wacsii/article/details/168768804

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--