📌 软件教程

Git版本控制入门:从commit到merge的完整实操

不懂Git,项目一乱就只能复制粘贴备份,代码丢了找不回。本文从零讲解Git核心概念(仓库/提交/分支/合并),覆盖GitHub/Gitee远程操作、冲突解决、撤销提交三大高频场景,附常用命令速查表,1小时学会Git。

✍️ 快乐自动上线 🕒 2026-09-21 08:21 👁 0 阅读 📖 2,233 字 ⏱ 约 5 分钟

你有没有过这种经历:代码改了一天发现改坏了想回到昨天,但昨天没备份;或者几个人改同一个文件改到冲突满地;或者一个bug改好又冒出来不知道是谁改的。

这就是没版本控制的下场。Git是现在最主流的版本控制工具,学会它你的代码人生会顺畅很多。今天从零讲,1小时上手。

一、Git到底在干嘛?

一句话:Git是代码的时光机+协作神器。它记录了代码的每一次修改,你可以随时回到任意历史版本,也可以多人同时改代码最后合并。

三大核心概念:仓库(存所有代码和历史记录的文件夹)、提交(一次代码快照,相当于游戏存档)、分支(从主干分出来独立开发的一条线,开发完再合并回去)。

二、安装配置

去git-scm.com下载安装,默认下一步就行。安装完右键任意文件夹有"Git Bash Here"选项。

第一次用需要配置用户名和邮箱(每次提交会记录):

git config --global user.name "你的名字"

git config --global user.email "你的邮箱"

查看配置:git config --list

三、本地仓库:初始化+提交

在项目目录下执行:

git init → 初始化仓库,生成隐藏的.git文件夹

git add . → 把当前所有修改加入暂存区(准备提交的文件列表)

git commit -m "第一次提交" → 把暂存区的文件提交到仓库,-m后面写这次修改的说明

工作流程:改代码→git add→git commit→改代码→git add→git commit……每次commit就是一个存档点。

查看提交历史:git log(看所有历史,q退出)。git log --oneline(简洁模式,一行一个提交)。

四、远程仓库:GitHub/Gitee

本地仓库只有你自己能看到,要备份和协作就需要推到远程。GitHub是国际最大,Gitee是国内版(速度快)。

1. 去GitHub/Gitee创建一个仓库(New repository),复制地址

2. 本地关联远程:git remote add origin 仓库地址

3. 推送到远程:git push -u origin master(-u参数第一次用,之后直接git push就行)

4. 克隆别人的仓库:git clone 仓库地址(自动生成目录并拉下来)

SSH密钥配置:每次push/pull都输密码很烦。用SSH免密:ssh-keygen生成密钥→把公钥加到GitHub/Gitee→之后操作不用输密码了。

五、分支:多人协作的灵魂

默认只有master/main分支。开发新功能时应该新建分支,开发完再合并回去:

git checkout -b feature/登录功能 → 创建并切换到新分支

git checkout master → 切回主分支

git branch → 查看所有分支

git merge feature/登录功能 → 把功能分支合并到当前分支

典型协作流程:从master建feature分支→在feature上开发→开发完切回master→merge feature→push。这样master始终稳定,不会被开发中的代码搞乱。

六、冲突解决:两个人改了同一行怎么办?

这是新手最头疼的问题。当你merge时Git提示"Automatic merge failed",就是冲突了——两个人改了同一文件的同一行。

打开冲突文件,你会看到:

HEAD和master的修改用=======分隔。你要手动编辑,保留正确的版本,删掉冲突标记。然后git add .→git commit。

IDE里解决冲突更直观:VS Code/IntelliJ都有可视化的冲突解决界面,点一下选左边还是右边就行。

七、撤销提交:改坏了怎么回去?

还没commit,改坏了:git checkout -- 文件名 → 恢复文件到上次commit的状态。

已经commit但还没push:git reset --soft HEAD~1 → 撤销最近一次commit,但代码还在(适合想修改commit信息)。git reset --hard HEAD~1 → 彻底回到上一个版本(⚠️代码会丢!慎用)。

已经push到远程:git revert 提交号 → 生成一个反向提交撤销那次修改,比reset安全(不影响远程历史)。

八、常用命令速查表

git init → 初始化仓库

git add . → 暂存所有修改

git commit -m "说明" → 提交

git log --oneline → 查看历史

git remote add origin URL → 关联远程

git push origin master → 推送到远程

git pull origin master → 拉取远程更新

git clone URL → 克隆仓库

git checkout -b 分支名 → 新建分支

git merge 分支名 → 合并分支

git checkout -- 文件名 → 撤销未提交修改

git reset --soft HEAD~1 → 撤销最近提交(保留代码)

git stash → 临时保存未提交修改(切分支时用)

git stash pop → 恢复stash的修改

九、避坑清单

❌ 不要commit敏感信息(密码/密钥/token)→ 用.gitignore排除

❌ .gitignore文件要加:node_modules/、vendor/、.env、*.log

❌ 不要用git reset --hard除非你确定代码不要了

❌ 多人协作先pull再push→避免冲突

❌ commit信息要写清楚→"修复登录bug"比"修改了一下"有用多了

Git入门就这些核心命令。1小时学完,平时多练。版本控制是程序员的基本素养,也是团队协作的基础。晚安,打工人。

🔠 字号

看累了?去工具区松一松 🧘

白噪音、深呼吸、三分钟小游戏,满血复活再回来。