从 0 到 1 掌握 Git:用「月光宝盒」管好你的代码版本与协作

65 阅读12分钟

从 0 到 1 掌握 Git:用「月光宝盒」管好你的代码版本与协作

作为开发者,你是否遇到过 “改崩代码想回退却找不到旧版本”“多人协作时文件越改越乱” 的问题?Git—— 这款分布式版本控制软件,就像代码世界的 “月光宝盒”,能帮你回溯版本、高效协作。本文将以 “本地项目推送到 Gitee” 为例,带你一步步掌握 Git 的核心操作,从新手变入门。

一、为什么需要 Git?先搞懂 “版本控制” 的价值

在没接触 Git 前,我们管理项目可能靠 “手动复制文件夹”:比如lesson_zp_v1“lesson_zp_v2”,这种方式不仅混乱,还存在两大致命问题:

  • 版本无法精准回退:如果改坏了代码,只能凭记忆找旧文件,一旦删除就彻底丢失;
  • 多人协作灾难:多人同时改一个文件时,很容易覆盖彼此的修改,最后得手动对比合并,效率极低。

而 Git 的核心作用,就是解决这两个痛点:

  • 它能给每一次修改 “拍快照”,随时回退到任意历史版本;
  • 支持多人分布式协作,自动处理代码冲突,让多人改同一项目也井然有序;
  • 搭配 Gitee/GitHub 等远程仓库,还能实现代码备份(不怕本地电脑坏了)、跨设备同步。

二、核心概念:先分清 “本地仓库” 与 “远程仓库”

学 Git 前,先记住两个关键角色,后续操作都是围绕它们展开:

类型作用代表场景
本地仓库存储在你电脑上的代码仓库,记录所有版本变化你电脑里的lesson_zp文件夹,通过git init初始化后成为本地仓库
远程仓库存储在云端的仓库,用于备份、共享和协作Gitee(码云)、GitHub 上创建的仓库,比如https://gitee.com/chenqianwen0309/lesson_zp.git

简单理解:本地仓库是你 “私人工作区”,远程仓库是 “团队共享区”—— 你在本地写好代码,再推到远程,别人就能从远程拉取你的代码,实现协作。

三、实战操作:从 0 到 1 把本地项目推到 Gitee

以 “本地lesson_zp项目推送到 Gitee” 为例,全程 6 步,跟着做就能成功。

1. 第一步:安装 Git 并配置身份(首次使用必做)

首先在电脑上安装 Git(官网下载,按默认步骤安装即可),然后配置 “全局身份”——Git 需要知道你是谁,这样每次提交都会记录你的信息。

打开终端(Windows 用 Git Bash 或 CMD,Mac/Linux 用终端),执行以下两条命令:

bash

运行

# 配置用户名(建议和Gitee用户名一致,方便识别)
git config --global user.name "重铸码农荣光"
# 配置邮箱(建议用注册Gitee的邮箱,确保关联账号)
git config --global user.email "2311745915@qq.com"
  • 注意:--global表示 “全局配置”,配置一次后,所有本地 Git 仓库都会用这个身份;
  • 验证配置:执行git config --global --list,能看到刚才配置的用户名和邮箱,说明配置成功。

2. 第二步:初始化本地仓库(让普通文件夹变 “Git 仓库”)

找到你电脑里的lesson_zp文件夹(没有版本控制能力的普通文件夹),在该文件夹下打开终端,执行:

bash

运行

git init

执行后会看到 “Initialized empty Git repository in xxx/.git/” 的提示,这意味着:

  • 系统在lesson_zp文件夹下创建了一个隐藏的.git目录(不要手动删除!);
  • 这个.git目录就是本地仓库的 “核心”,它会记录所有文件的修改、版本历史。

从此,lesson_zp不再是普通文件夹,而是具备版本控制能力的 Git 仓库了。

3. 第三步:把文件添加到 “暂存区”(准备提交)

Git 有个 “暂存区” 的概念,相当于 “提交前的缓冲带”—— 你可以先把要提交的文件放到暂存区,确认无误后再正式提交到仓库。

lesson_zp目录下,执行:

bash

运行

git add .
  • 这里的.代表 “当前目录下所有修改过的文件”,包括新增、修改、删除的文件;
  • 如果只想添加单个文件,比如index.js,可以执行git add index.js
  • 执行后没有提示,说明操作成功(Git 的 “沉默即成功” 原则)。

4. 第四步:正式提交到本地仓库(拍 “版本快照”)

暂存区的文件确认无误后,执行 “提交” 命令,把文件正式存入本地仓库,并附带 “提交说明”(必须写,不然会报错):

bash

运行

git commit -m "第一次提交"
  • -m后面跟的是 “提交信息”,建议写清楚这次提交做了什么,比如 “新增首页 HTML 文件”“修复登录 bug”,方便后续查看历史时快速理解;
  • 执行成功后,会看到类似 “1 file changed, 2 insertions (+)” 的提示,代表 “1 个文件被修改,新增了 2 行内容”。

这一步相当于给当前代码 “拍了张快照”,后续想回退到这个版本,直接用 Git 命令就能实现。

5. 第五步:关联远程仓库(连接本地与 Gitee)

现在代码只在你本地仓库,要推到 Gitee,得先让本地仓库 “认识” 远程仓库 —— 通过 “关联远程地址” 实现。

首先,你需要在 Gitee 上创建一个远程仓库(比如已创建的lesson_zp仓库,地址是https://gitee.com/chenqianwen0309/lesson_zp.git),然后在本地终端执行:

bash

运行

git remote add origin https://gitee.com/chenqianwen0309/lesson_zp.git
  • origin是远程仓库的 “别名”(可以自定义,比如叫gitee,但行业惯例用origin);
  • 后面的 URL 就是你 Gitee 仓库的地址(从 Gitee 仓库页面复制 “HTTPS” 地址即可)。

关联后,执行git remote -v,能看到origin对应的远程地址,说明关联成功。

6. 第六步:推送到远程仓库(本地代码上云)

最后一步,把本地仓库的代码推送到 Gitee 的远程仓库,执行:

bash

运行

git push origin master
  • push是 “推送” 命令;
  • origin是远程仓库别名(对应刚才关联的 Gitee 地址);
  • master是本地分支名(Git 默认分支叫master,现在很多仓库也用main,根据远程仓库默认分支调整即可)。

首次推送时,可能会弹出 Gitee 的登录窗口,输入你的 Gitee 账号密码(或 token)验证,验证通过后,就能看到代码推送进度。

推送成功后,打开 Gitee 上的lesson_zp仓库页面,就能看到你本地的代码已经同步到云端了!

四、新手常见问题与避坑指南

刚用 Git 时,很容易遇到各种小问题,这里整理 3 个高频坑点及解决方法:

1. 推送时提示 “fatal: remote origin already exists”

  • 原因:本地仓库已经关联过一个origin远程地址,不能重复关联;

  • 解决:先删除旧关联,再重新关联新地址:

    bash

    运行

    git remote rm origin  # 删除旧的origin关联
    git remote add origin 新的远程仓库地址  # 重新关联
    

2. 提交时提示 “nothing to commit, working tree clean”

  • 原因:暂存区没有文件,要么是没执行git add .,要么是所有文件都已经提交过,没有新修改;
  • 解决:先执行git status查看当前状态,确认有修改后,重新执行git add .再提交。

3. 推送到 Gitee 时提示 “permission denied”(权限不足)

  • 原因:登录验证失败,可能是密码输错,或 Gitee 开启了 “双因素认证”(此时需要用 “个人访问令牌” 代替密码);

  • 解决:

    1. 去 Gitee “设置 - 安全设置 - 个人访问令牌”,生成一个有 “仓库权限” 的令牌;
    2. 推送时,用户名输 Gitee 账号,密码输生成的令牌,即可通过验证。

五、总结:Git 的核心逻辑与后续学习方向

通过这次 “本地项目推 Gitee” 的实战,你已经掌握了 Git 的核心工作流:初始化仓库(git init)→ 添加暂存区(git add .)→ 提交本地(git commit -m)→ 关联远程(git remote add)→ 推送远程(git push)

这只是 Git 的入门,后续还可以学习这些实用技能:

  • 版本回退:用git log查看历史提交,用git reset --hard 提交ID回退到指定版本;
  • 分支管理:用git branch 分支名创建新分支(比如开发分支dev),避免直接在master上改代码;
  • 拉取远程代码:用git pull origin master把远程仓库的最新代码拉到本地,避免协作时冲突。

Git 看似命令多,但常用的就那几个,多练几次就能熟练。记住:Git 不是 “高深工具”,而是帮你提高效率的 “代码管家”—— 学会它,你就能告别 “版本混乱”,轻松应对个人开发与团队协作。

六、附录

Git 常用命令速查表(含实战场景)

这份速查表覆盖 Git 核心操作,按 “环境配置→本地仓库→远程协作→问题排查” 分类,结合前文 “本地项目推 Gitee” 的实战场景,方便快速查阅和使用。

(一)环境配置(首次使用必做)

命令作用示例
git config --global user.name "用户名"配置全局用户名(关联提交记录)git config --global user.name "重铸码农荣光"
git config --global user.email "邮箱"配置全局邮箱(需与远程仓库账号一致)git config --global user.email "2311745915@qq.com"
git config --global --list查看全局配置信息验证用户名、邮箱是否配置成功
git config --global core.editor "编辑器"配置默认提交信息编辑器(可选)git config --global core.editor "code --wait"(用 VS Code)

(二)本地仓库操作(核心工作流)

对应前文 “初始化本地仓库→提交代码” 的流程,是个人开发最常用的命令组。

命令作用示例 / 说明
git init初始化本地 Git 仓库(普通文件夹变仓库)在 lesson_zp 文件夹下执行,生成隐藏 .git 目录
git status查看当前仓库状态(文件是否修改、是否在暂存区)执行后会提示 “Untracked files”(未跟踪)或 “Changes to be committed”(已暂存)
git add 文件名将指定文件添加到暂存区git add index.js(添加单个文件)
git add .将当前目录下所有修改(新增 / 修改 / 删除)添加到暂存区前文实战中用此命令批量添加文件
git reset HEAD 文件名将暂存区的文件撤回(取消 add,不删除本地修改)git reset HEAD index.js(撤回 index.js 的暂存状态)
git commit -m "提交信息"将暂存区文件提交到本地仓库,生成版本记录git commit -m "第一次提交"(提交信息需清晰,说明本次修改内容)
git log查看本地仓库提交历史(含提交 ID、作者、时间)按 q 键退出查看界面
git log --oneline简化版提交历史(只显示提交 ID 前 7 位和提交信息)快速定位需要回退的版本
git reset --hard 提交ID回退到指定版本(谨慎使用,会覆盖当前未提交的修改)git reset --hard a1b2c3d(a1b2c3d 是通过 git log --oneline 查到的版本 ID)

(三)远程仓库协作(对接 Gitee/GitHub)

对应前文 “关联远程→推送代码” 的流程,解决代码备份和多人协作问题。

命令作用示例 / 说明
git remote add 别名 远程地址关联远程仓库(给远程地址起别名,方便后续操作)git remote add origin https://gitee.com/chenqianwen0309/lesson_zp.gitorigin 是行业默认别名)
git remote -v查看已关联的远程仓库列表(验证关联是否成功)执行后会显示 origin 对应的 “拉取(fetch)” 和 “推送(push)” 地址
git remote rm 别名删除已关联的远程仓库(解决 “remote origin already exists” 错误)git remote rm origin(删除旧的 origin 关联,再重新关联新地址)
git push 别名 分支名将本地分支代码推送到远程仓库对应分支git push origin master(前文实战命令,推本地 master 分支到远程 origin 的 master 分支)
git push -u 别名 分支名首次推送时绑定本地与远程分支(后续可直接用 git pushgit push -u origin master(绑定后,下次推送只需执行 git push
git pull 别名 分支名从远程仓库拉取最新代码到本地(避免协作时代码冲突)git pull origin master(多人协作时,每次开发前先拉取远程最新代码)
git clone 远程地址从远程仓库克隆完整项目到本地(首次获取远程项目时用)git clone https://gitee.com/chenqianwen0309/lesson_zp.git(会在本地生成 lesson_zp 文件夹,包含完整代码和仓库历史)

(四)问题排查与常用补充

针对新手高频遇到的错误和场景,快速定位并解决问题。

场景 / 错误对应命令 / 解决方案
推送时提示 “permission denied”(权限不足)1. 检查 Gitee 账号密码是否正确;2. 若开启双因素认证,需用 “个人访问令牌” 代替密码(Gitee settings→安全设置→个人访问令牌,生成时勾选 “仓库权限”)
提交时提示 “nothing to commit, working tree clean”1. 执行 git status 确认是否有未添加的修改;2. 若有修改,先执行 git add . 再提交
想忽略某些文件(如 node_modules.env1. 在项目根目录创建 .gitignore 文件;2. 在文件中写入要忽略的文件名 / 目录(如 node_modules/.env),Git 会自动跳过这些文件
查看分支列表git branch(列出本地所有分支,当前分支前会有 * 标记)
创建新分支并切换git checkout -b 新分支名git checkout -b dev(创建并切换到 dev 分支,用于开发新功能,避免影响 master 分支)
切换回已有分支git checkout 分支名git checkout master(从 dev 分支切回 master 分支)

使用时建议按 “场景查分类,分类找命令”,比如 “要推代码到 Gitee” 就看 “远程仓库协作” 分类,“要回退版本” 就看 “本地仓库操作” 的 git reset 命令。熟练后,这些命令会成为你开发中的 “肌肉记忆”~