】Git版本控制器从入门到实战:核心操作三板斧与新手避坑指南)
目录一、前言二、Git版本控制器1.版本控制器2.git发展历史3.git安装git clone三、git操作三板斧1.git add2.git commit3.git push4.三者的协作流程四、首次使用git会遇到的问题问题一找不到 Git 仓库问题二命令格式错误与文件路径不符问题三未配置 Git 提交身份附加问题终端输入密码时出现乱码五、小结一、前言关于Linux开发博主已经向大家介绍了四个基础开发工具贴在下面【Linux基础开发工具一】Linux包管理器与软件生态全解析从国内镜像源到yum/apt实战-CSDN博客https://blog.csdn.net/wacsii/article/details/166788985?spm1001.2014.3001.5501https://blog.csdn.net/wacsii/article/details/166788985?spm1001.2014.3001.5501【Linux基础开发工具二】Vim编辑器从入门到实战模式、命令、配置与常见问题全解析-CSDN博客https://blog.csdn.net/wacsii/article/details/166883124?spm1001.2014.3001.5501https://blog.csdn.net/wacsii/article/details/166883124?spm1001.2014.3001.5501【Linux基础开发工具三】gcc/g编译流程、条件编译与动静态链接-CSDN博客https://blog.csdn.net/wacsii/article/details/167920998?spm1001.2014.3001.5501https://blog.csdn.net/wacsii/article/details/167920998?spm1001.2014.3001.5501【Linux基础开发工具四】Linux自动化构建make/makefile入门与核心原理详解-CSDN博客https://blog.csdn.net/wacsii/article/details/168250430?spm1001.2014.3001.5501https://blog.csdn.net/wacsii/article/details/168250430?spm1001.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| Agit 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原因命令缺少空格应写为git add .。虽然在~/Linux目录下成功识别了 Git 仓库但目标文件test.c仍然存放在上一级家目录中不在当前仓库内。解决方案将文件移入仓库cp ../test.c .或使用mv移动。正确添加文件git add test.c或git add .。问题三未配置 Git 提交身份报错提示Author identity unknown/fatal: unable to auto-detect email address原因首次使用 Git 未配置全局用户名和邮箱Git 无法记录代码提交者的身份信息因此拒绝提交。解决方案在终端执行以下命令进行全局配置替换为您自己的信息bashgit config --global user.name 田梦娴 git config --global user.email 1767064640qq.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 的核心三板斧并避开这些新手常见错误能够帮助开发者快速建立起规范的代码管理与版本迭代习惯为后续的多人协同开发打下坚实基础。创作不易请各位读者一键三连