Loading
4956 字
25 分钟

Git 使用教程 测试

2026-04-28
浏览量 加载中...
AI 摘要

Git 详细使用教程(命令行版,附命令作用解释)#

Git 是目前最流行的分布式版本控制系统,核心作用是跟踪文件变化、管理代码版本,支持多人协作开发,可随时回滚到历史版本,避免代码丢失或冲突。本教程全程使用命令行操作(Windows 用 Git Bash、Mac/Linux 用终端),从基础配置到高级用法,逐一讲解命令作用和实操场景,新手可直接跟着步骤练习。

一、Git 前期准备(必做)#

1. 安装 Git#

先在本地安装 Git,安装完成后,打开命令行,输入以下命令验证是否安装成功:

Terminal window
git --version

命令作用:查看当前 Git 版本,若输出类似git version 2\.43\.0,说明安装成功;若提示“命令不存在”,需重新安装 Git。

2. 初始配置(绑定身份,关键步骤)#

Git 每次提交代码时,会记录提交者的身份(用户名和邮箱),用于区分不同开发者,必须配置后才能正常提交代码。

Terminal window
# 配置用户名(建议和 GitHub/GitLab 用户名一致)
git config --global user.name "你的用户名"
# 配置邮箱(建议和 GitHub/GitLab 绑定邮箱一致)
git config --global user.email "你的邮箱地址"

命令作用详解:

  • git config:Git 的配置命令,用于设置 Git 相关参数;

  • \-\-global:全局参数,意味着该配置在当前电脑所有 Git 项目中生效(若只想针对单个项目配置,去掉该参数,进入项目后再执行);

  • user\.name/user\.email:配置提交者的用户名和邮箱,后续所有提交记录都会显示该信息。

验证配置是否成功:

Terminal window
git config --list

命令作用:查看当前 Git 的所有配置,若能看到刚才设置的用户名和邮箱,即为配置成功。

二、Git 核心概念(先理解,再操作)#

在使用命令前,先明确 3 个核心工作区域,避免操作混乱:

  1. 工作区(Working Directory):就是你本地电脑上的项目文件夹,你直接修改的文件都在这个区域;

  2. 暂存区(Stage/Index):临时存放你修改的文件,相当于“缓存区”,用于确认哪些修改需要提交到版本库;

  3. 版本库(Repository):Git 真正保存版本的地方,存放所有提交记录,可随时回滚到任意历史版本(分为本地版本库和远程版本库,如 GitHub)。

核心流程:工作区修改 → 提交到暂存区 → 提交到本地版本库 → 推送到远程版本库(如 GitHub)。

三、本地仓库操作(最基础,必练)#

本地仓库是 Git 操作的基础,无需联网,可独立完成版本管理,适合个人开发或离线工作。

1. 初始化本地仓库(创建新项目)#

适用于:新建一个项目,想要用 Git 管理版本(比如本地新建的文件夹,需要变成 Git 仓库)。

Terminal window
# 1. 进入你要管理的项目文件夹(先切换到目标路径)
cd 你的项目文件夹路径(如:cd /Users/xxx/Documents/MyProject)
# 2. 初始化 Git 仓库
git init

命令作用详解:

  • cd:切换目录命令,用于进入你要操作的项目文件夹(若路径错误,会提示“没有该文件或目录”);

  • git init:初始化 Git 仓库,执行后会在项目文件夹中生成一个隐藏的 \.git 文件夹(该文件夹是 Git 版本库的核心,不要删除),此时项目就被 Git 管理起来了。

注意:每个项目只需初始化一次,初始化后,该文件夹就是 Git 仓库了。

2. 查看工作区状态(高频命令)#

无论做什么操作,建议先查看工作区状态,确认当前文件的修改情况,避免误操作。

Terminal window
git status

命令作用:查看工作区、暂存区的文件状态,常见输出场景:

  • 未修改:提示 nothing to commit, working tree clean(工作区干净,没有任何修改);

  • 已修改但未提交到暂存区:文件名称显示为 modified(红色);

  • 已提交到暂存区但未提交到版本库:文件名称显示为 staged(绿色)。

3. 将修改的文件提交到暂存区#

适用于:你在工作区修改了文件(如新增、修改、删除文件),需要先提交到暂存区,再准备提交到版本库。

Terminal window
# 方式1:提交所有修改的文件(最常用)
git add .
# 方式2:提交指定文件(适用于只提交部分修改)
git add 文件名(如:git add index.html)
# 方式3:提交指定文件夹下的所有文件
git add 文件夹名(如:git add src/)

命令作用详解:

  • git add:将工作区的修改“暂存”起来,告诉 Git“这些修改我要提交到版本库,请先记录下来”;

  • \.:表示当前目录下所有修改的文件(包括新增、修改、删除),简化操作,无需逐个指定文件;

  • 提交后,再执行git status,会看到文件变成绿色,提示“changes to be committed”(暂存区有等待提交的内容)。

4. 将暂存区的文件提交到本地版本库#

这是 Git 版本管理的核心步骤,提交后,修改会被永久保存到本地版本库,生成一条新的版本记录。

Terminal window
git commit -m "提交说明"

命令作用详解:

  • git commit:将暂存区的内容提交到本地版本库,完成一次版本更新;

  • \-m \&\#34;提交说明\&\#34;:必填参数,用于描述本次提交的内容(如“新增登录页面”“修复首页轮播bug”),建议说明清晰,方便后续查看历史记录时,快速知道该版本做了什么修改;

  • 提交成功后,会提示类似 1 file changed, 2 insertions\(\+\) 的信息,表示“1个文件被修改,新增了2行内容”。

注意:必须先执行 git add,再执行 git commit,否则会提示“没有可提交的内容”。

5. 查看提交历史记录#

适用于:查看之前的提交记录,包括提交者、提交时间、提交说明、版本号(用于回滚版本)。

Terminal window
# 方式1:查看完整历史记录(详细)
git log
# 方式2:查看简洁历史记录(只显示版本号和提交说明,推荐)
git log --oneline
# 方式3:查看所有提交记录(包括回滚的记录)
git reflog

命令作用详解:

  • git log:显示所有提交记录,每条记录包含版本号(40位哈希值)、提交者、提交时间、提交说明;

  • \-\-oneline:简化输出,每条记录只显示前7位版本号和提交说明,更易查看;

  • git reflog:比 git log 更全面,会记录所有操作(包括回滚、撤销提交),常用于找回误删的版本。

6. 版本回滚(恢复到历史版本)#

适用于:修改出错、代码丢失,需要恢复到之前的某个稳定版本(核心操作,务必掌握)。

Terminal window
# 第一步:查看历史版本,获取要回滚的版本号(前7位即可)
git log --oneline
# 第二步:回滚到指定版本(两种常用方式)
# 方式1:彻底回滚,删除回滚版本之后的所有提交记录(谨慎使用,适合个人开发)
git reset --hard 版本号(如:git reset --hard a1b2c3d)
# 方式2:安全回滚,保留回滚版本之后的修改(推荐,适合多人协作)
git revert 版本号(如:git revert a1b2c3d)

命令作用详解:

  • git reset \-\-hard 版本号:强制回滚到指定版本,工作区、暂存区的内容都会同步到该版本,之后的提交记录会被删除(无法恢复,谨慎使用);

  • git revert 版本号:不会删除任何提交记录,而是生成一条新的提交记录,将代码恢复到指定版本,后续的修改仍然保留(安全,多人协作时优先使用);

  • 版本号:通过 git log \-\-oneline 获取,如 a1b2c3d(前7位即可,Git 会自动识别)。

7. 撤销工作区的修改(未提交到暂存区)#

适用于:在工作区修改了文件,但还没执行 git add,想放弃修改,恢复到上一次提交后的状态。

Terminal window
# 撤销单个文件的修改
git checkout -- 文件名(如:git checkout -- index.html)
# 撤销所有工作区的修改(未 add 的)
git checkout .

命令作用:放弃工作区的所有未暂存修改,将文件恢复到最近一次 git commitgit add 后的状态(注意:撤销后,修改会彻底丢失,无法恢复)。

8. 撤销暂存区的修改(已 add 但未 commit)#

适用于:执行了 git add,将修改提交到了暂存区,但还没执行 git commit,想撤销暂存,重新修改。

Terminal window
git reset HEAD 文件名(如:git reset HEAD index.html)
# 撤销所有暂存区的修改
git reset HEAD .

命令作用:将暂存区的修改撤销回工作区,此时文件状态会从“绿色(staged)”变回“红色(modified)”,之后可以重新修改、重新 add。

四、远程仓库操作(多人协作必备)#

远程仓库(如 GitHub、GitLab、Gitee)是用于多人共享代码的服务器,本地仓库的代码可以推送到远程,也可以从远程拉取别人的代码,实现协作开发。

前提:你已经有一个远程仓库(如在 GitHub 上创建了仓库),且本地 Git 已配置好远程仓库地址。

1. 关联远程仓库(第一次绑定)#

适用于:本地已有 Git 仓库,想要和远程仓库绑定,实现代码同步。

Terminal window
git remote add origin 远程仓库地址

命令作用详解:

  • git remote:用于管理远程仓库的命令(如添加、删除、查看远程仓库);

  • add:添加远程仓库;

  • origin:远程仓库的别名(默认用 origin,可自定义,如 git remote add github 远程地址),后续操作远程仓库时,用别名即可,无需输入完整地址;

  • 远程仓库地址:从 GitHub/GitLab 复制,一般分为 HTTPS 和 SSH 两种(HTTPS 无需配置密钥,直接输入账号密码即可;SSH 需要配置密钥,无需每次输入账号密码,推荐长期使用)。

查看已关联的远程仓库:

Terminal window
git remote -v

命令作用:查看当前本地仓库关联的所有远程仓库,输出会显示远程仓库的别名、地址,以及可进行的操作(fetch:拉取,push:推送)。

2. 从远程仓库拉取代码(同步别人的修改)#

适用于:多人协作时,别人将代码推送到了远程仓库,你需要将远程的最新代码拉取到本地,保持本地和远程同步。

Terminal window
# 方式1:拉取远程默认分支(如 main/master)的最新代码(最常用)
git pull origin main(或 master,取决于远程仓库的默认分支名)
# 方式2:拉取远程指定分支的代码
git pull origin 分支名(如:git pull origin develop)

命令作用详解:

  • git pull:等价于 git fetch \+ git merge,即先从远程拉取最新代码到本地临时区域,再自动合并到当前本地分支;

  • origin:远程仓库别名;

  • main/master:远程仓库的默认分支(GitHub 现在默认分支是 main,旧版本是 master);

  • 注意:拉取代码前,建议先执行 git commit,将本地的修改提交到本地版本库,避免拉取时出现代码冲突。

3. 将本地代码推送到远程仓库(分享自己的修改)#

适用于:你在本地完成了代码修改(已 commit 到本地版本库),想要将修改推送到远程仓库,让别人看到你的代码。

Terminal window
# 方式1:推送本地默认分支到远程默认分支(第一次推送需加 -u)
# 第一次推送(绑定本地分支和远程分支,后续可直接用 git push)
git push -u origin main(或 master)
# 后续推送(已绑定分支,无需加 -u)
git push origin main(或 master)
# 方式2:推送本地指定分支到远程指定分支
git push origin 本地分支名:远程分支名(如:git push origin develop:develop)

命令作用详解:

  • git push:将本地版本库的提交记录推送到远程仓库;

  • \-u:第一次推送时使用,用于绑定本地分支和远程分支(如本地 main 分支绑定远程 main 分支),后续推送时,直接输入 git push 即可,无需指定别名和分支;

  • 推送失败常见原因:① 本地代码不是最新的(需先 git pull 拉取远程最新代码,解决冲突后再推送);② 没有远程仓库的权限(检查账号密码或 SSH 密钥配置)。

4. 克隆远程仓库到本地(第一次下载)#

适用于:本地没有该项目,直接从远程仓库下载完整的项目代码(包括所有版本记录)。

Terminal window
git clone 远程仓库地址

命令作用详解:

  • git clone:将远程仓库的所有内容(包括代码、版本记录、分支)完整下载到本地,自动创建项目文件夹,并初始化 Git 仓库;

  • 执行后,本地会自动关联该远程仓库(别名默认是 origin),无需再执行 git remote add

  • 示例:git clone https://github\.com/用户名/项目名\.git(HTTPS 地址),或 git clone git@github\.com:用户名/项目名\.git(SSH 地址)。

5. 查看远程分支#

Terminal window
# 查看本地所有分支
git branch
# 查看远程所有分支
git branch -r
# 查看本地和远程所有分支
git branch -a

命令作用:

  • git branch:查看本地已有的分支,当前所在分支会用 \* 标记;

  • \-r:查看远程仓库的所有分支;

  • \-a:查看本地和远程的所有分支(远程分支会显示为 remotes/origin/分支名)。

6. 切换/创建分支(多人协作核心)#

多人协作时,建议每人在自己的分支上开发,避免直接修改默认分支(main/master),开发完成后再合并到默认分支。

Terminal window
# 1. 创建新分支(并切换到该分支,最常用)
git checkout -b 分支名(如:git checkout -b develop)
# 等价于以下两条命令:
# git branch 分支名(创建分支)
# git checkout 分支名(切换到该分支)
# 2. 切换到已有的本地分支
git checkout 分支名(如:git checkout main)
# 3. 切换到远程分支(并创建本地对应分支)
git checkout -b 本地分支名 origin/远程分支名(如:git checkout -b develop origin/develop)

命令作用详解:

  • git checkout \-b 分支名:一次性完成“创建分支+切换分支”,高效便捷;

  • 分支命名建议:按功能命名(如 feature/login,表示登录功能分支)、按bug修复命名(如 fix/banner\-bug),便于区分。

7. 合并分支(将开发分支的代码合并到默认分支)#

适用于:在开发分支(如 develop)完成开发后,将代码合并到默认分支(如 main),让修改生效。

Terminal window
# 1. 先切换到要合并到的目标分支(如 main 分支)
git checkout main
# 2. 合并开发分支(如 develop 分支)到当前分支(main)
git merge develop

命令作用:将指定分支(如 develop)的所有修改,合并到当前所在的分支(如 main),合并后,main 分支就包含了 develop 分支的所有代码。

注意:合并时可能会出现代码冲突(如两个人同时修改了同一个文件的同一行),此时需要手动解决冲突:

  1. 执行 git merge 后,Git 会提示“冲突文件”;

  2. 打开冲突文件,找到标记冲突的地方(用 \<\<\<\<\<\<\<=======\>\>\>\>\>\>\> 标记);

  3. 修改冲突内容(保留需要的代码,删除冲突标记);

  4. 执行 git add \.git commit \-m \&\#34;解决合并冲突\&\#34;,完成合并。

8. 删除分支(分支开发完成后)#

Terminal window
# 删除本地分支(分支已合并到主分支,可安全删除)
git branch -d 分支名(如:git branch -d develop)
# 强制删除本地分支(分支未合并,强行删除,谨慎使用)
git branch -D 分支名
# 删除远程分支
git push origin --delete 分支名(如:git push origin --delete develop)

命令作用:删除无用的分支,保持分支结构清晰,避免混乱。

五、常用补充命令(高频实用)#

Terminal window
# 1. 查看当前分支的提交差异(对比工作区和暂存区)
git diff
# 2. 查看暂存区和本地版本库的差异
git diff --cached
# 3. 查看两个分支之间的差异
git diff 分支1 分支2(如:git diff main develop)
# 4. 暂存当前修改,切换到其他分支(临时切换分支,不提交当前修改)
git stash  # 暂存当前修改
git stash pop  # 恢复暂存的修改(恢复后,暂存记录删除)
git stash list  # 查看所有暂存记录
# 5. 重命名本地分支
git branch -m 旧分支名 新分支名
# 6. 更新远程分支列表(远程删除了分支,本地同步)
git fetch --prune

每个命令的作用简要说明:

  • git diff:快速查看修改的具体内容(哪一行被修改、新增/删除了什么);

  • git stash:临时保存未提交的修改,常用于“正在开发一个功能,突然需要切换到其他分支修复bug”的场景;

  • git fetch \-\-prune:同步远程分支的删除操作,避免本地显示已删除的远程分支。

六、常见问题解决(新手必看)#

1. 拉取/推送代码时,提示“权限不足”#

原因:未配置正确的账号密码或 SSH 密钥。

解决方法:

  • 若用 HTTPS 地址:重新输入正确的 GitHub/GitLab 账号密码;

  • 若用 SSH 地址:配置 SSH 密钥(网上搜索“GitHub SSH 密钥配置”,按步骤操作即可,配置一次终身可用)。

2. 合并分支时出现代码冲突#

解决方法:按前面“合并分支”部分的步骤,手动修改冲突文件,删除冲突标记,保留需要的代码,再提交即可。

注意:冲突解决后,一定要仔细检查代码,确保没有误删有用的内容。

3. 误删本地代码/误回滚版本,如何恢复?#

解决方法:执行 git reflog,查看所有操作记录,找到误删/误回滚前的版本号,再执行git reset \-\-hard 版本号,即可恢复到该版本。

4. 推送代码时,提示“本地版本落后于远程版本”#

原因:远程仓库有别人推送的最新代码,你的本地代码不是最新的,无法直接推送。

解决方法:先执行 git pull 拉取远程最新代码,解决冲突后,再执行 git push

七、总结(核心流程梳理)#

Git 的核心操作围绕“本地仓库”和“远程仓库”展开,新手记住以下流程即可快速上手:

  1. 前期准备:安装 Git → 配置用户名和邮箱;

  2. 本地开发:初始化仓库(git init)→ 修改文件 → 提交到暂存区(git add .)→ 提交到本地版本库(git commit -m "说明");

  3. 多人协作:克隆远程仓库(git clone)→ 拉取远程更新(git pull)→ 创建分支开发 → 推送分支到远程(git push)→ 合并分支;

  4. 问题处理:版本回滚(git reset/git revert)、解决冲突、恢复误删代码(git reflog)。

Git 命令看似多,但常用的只有十几个,多练习几次(比如新建一个测试项目,反复执行 add、commit、push、pull 等操作),就能熟练掌握。记住:所有命令的核心都是“跟踪版本、同步代码”,理解每个命令的作用,比死记硬背更重要。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Git 使用教程 测试
https://fqzlr.com/posts/blog/git-use/
作者
fqzlr
发布于
2026-04-28
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-04-28,距今已过 69 天

部分内容可能已过时

评论区

[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:00 0:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]
站点统计
文章
16
动态
4
记录次数
101
分类
11
标签
32
总字数
30,547
运行时长
0
最后活动
0 天前