深入解析:Linux基础开发工具(中):Git版本控制

请添加图片描述



引言

1991 年,Linus Torvalds(林纳斯・托瓦兹)开发出 Linux 内核并开源,此后全球开发者自发为其贡献代码。但随着参与者增多,代码管理成了大难题:早期 Linux 内核团队靠手动合并补丁文件协作,不仅效率低下,还极易出现代码冲突、版本混乱的问题。
2005 年,BitKeeper(当时 Linux 内核使用的商用版本控制工具)终止了对 Linux 社区的免费授权,这成了 “压垮骆驼的最后一根稻草”。Linus 仅用两周时间,基于 C 语言和 Shell 脚本开发出 Git,核心目标是解决 “分布式协作下的高效版本控制” 问题:既要支持数千名开发者同时协作,又要保证版本记录完整、代码合并高效,且能离线工作(本地即可完成大部分版本操作)。
如今,Git 已成为全球最主流的版本控制系统,无论是个人开发小项目,还是大型团队协作的开源 / 商业项目(如 Linux、Vue、React),Git 都是代码管理的核心工具。掌握 Git 的核心逻辑与操作流程,不仅能回溯代码修改历史、避免误操作丢失代码,更能让多人协作的代码同步变得规范、高效 —— 这也是每个开发者必备的基础技能。


1.Git核心概念

1.1.什么是版本控制

版本控制是一种记录文件(尤其是代码)修改历史的系统,有以下主要功能:

  • 回溯到任意历史版本;
  • 查看每次修改的内容;
  • 多人协作时,安全合并各自代码(避免冲突)。

1.2.Git工作流程

Git管理代码时,涉及四个关键区域:

  • 工作区:正在编辑的代码文件所在目录(如main.cprocess.h),修改会实时反映在这里;
  • 暂存区:临时存放“待提交”的修改,相当于代码“审核区”,只有添加到暂存区的文件才会被Git跟踪;
  • 本地仓库:存储所有版本历史数据库,位于项目目录下的.git文件(隐藏目录),git commit会将暂存区的修改提交到这里;
  • 远程仓库:托管在云端的仓库(如Github、Gitee等),可用于多人协作共享代码,git push / git pull实现本地与远程同步。

在这里插入图片描述


2.Git从安装到远程提交完整流程

2.1.安装Git

根据不同的Linux发行版选择对应的安装命令:

# CentOS安装
sudo yum install -y git
# Ubuntu安装
sudo apt install -y git
# 验证安装(查看版本)
git --version  # 输出示例:git version 1.8.3.1

2.2.创建Gitee/Github远程仓库

(1)进入Gitee官网注册账号并登录:https://gitee.com
在这里插入图片描述
(2)新建远程仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)复制远程仓库仓库克隆命令,后续用于关联本地仓库:
在这里插入图片描述
在这里插入图片描述

2.3.配置用户

Git需要知道当前用户的身份,以此来记录“谁提交了修改”,因此需要配置对应的用户名和邮箱,配置命令如下:

# 设置全局用户名(所有Git仓库通用)
git config --global user.name "Your Name"  # 替换为你的名字,如"Zhang San"
# 设置全局邮箱(建议与Gitee/Github注册邮箱一致)
git config --global user.email "your@email.com"  # 替换为你的邮箱,如"zhangsan@xxx.com"
# 查看配置是否生效
git config --list  # 输出中会显示user.name和user.email

2.4.克隆远程仓库到本地

先进入到本地要存储代码仓库的目录下:

# 这里可以根据自身需求输入对应路径
# 克隆后的代码仓库将存储至对应目录下
cd ~/myRepository/

在命令行粘贴刚刚复制的命令,将远程代码仓库克隆到本地:

git clone https://gitee.com/XXXXXX/code.git

2.5.提交代码“三板斧”

2.5.1.git add

# 把单文件添加到暂存区
git add 文件名
# 把所有文件添加到暂存区
git add .

2.5.2.git commit

#将暂存区修改提交到本地仓库
git commit -m "XXXXXX"

注意:双引号内的提交日志一定不能乱填,可以用来描述改动部分的详细内容。

2.5.3.git push

# 将本地仓库修改同步到远程仓库上
git push

3.Git常用辅助命令与操作

3.1.版本回退

若提交后发现错误,可回退到之前的版本:

# 查看提交历史,获取要回滚的版本号(如a1b2c3d)
git log --oneline
# 回滚到指定版本(hard表示彻底回滚,工作区也会恢复到该版本)
git reset --hard a1b2c3d
# 回滚到上一个版本(HEAD^表示上一个版本,HEAD^^表示上上个版本)
git reset --hard HEAD^

3.2.撤销工作区修改

若修改了文件,但未git add,想恢复最近一次commit状态(若已执行git add后,再修改文件,将恢复到暂存区状态):

# 撤销单个文件的修改(如main.c)
git checkout -- main.c
# 撤销当前目录下所有文件的修改
git checkout -- .

3.3.忽略不需要跟踪的文件

创建.gitignore文件,列出不需要Git跟踪的文件:

# 创建并编辑.gitignore
vim .gitignore

根据实际需求添加内容:

# 忽略所有.o目标文件
*.o
# 忽略可执行文件processbar
processbar
# 忽略日志文件
*.log

后续这些文件就不会被Git跟踪啦。

3.4.免密码提交

(1)在家目录下,创建.git-credentials文件,并修改文件内容:

cd ~
touch .git-credentials
vim .git-credentials
https://{用户名}:{密码}@gitee.com

(2)在命令行输入:

git config --global credential.helper store

(3)打开~/.gitconfig文件:

# 会多出以下内容
[credential]
helper = store

结语

Git作为软件开发的版本管理核心工具,彻底革新了代码协作与版本控制方式:无需手动记录修改历史,通过分布式架构与多区域流转机制自动追踪版本变化,让协作更高效有序;灵活的操作体系(提交/回滚/合并/忽略)能适配个人与团队场景,规避版本混乱与代码冲突,显著提升了开发效率与代码安全性。

posted @ 2026-01-26 18:41  clnchanpin  阅读(1)  评论(0)    收藏  举报