git指令学习
Git 详细使用教程(命令行版,附命令作用解释)
Git 是目前最流行的分布式版本控制系统,核心作用是跟踪文件变化、管理代码版本,支持多人协作开发,可随时回滚到历史版本,避免代码丢失或冲突。本教程全程使用命令行操作(Windows 用 Git Bash、Mac/Linux 用终端),从基础配置到高级用法,逐一讲解命令作用和实操场景,新手可直接跟着步骤练习。
一、Git 前期准备(必做)
1. 安装 Git
先在本地安装 Git,安装完成后,打开命令行,输入以下命令验证是否安装成功:
Terminal window
1 | git --version |
命令作用:查看当前 Git 版本,若输出类似git version 2\.43\.0,说明安装成功;若提示“命令不存在”,需重新安装 Git。
2. 初始配置(绑定身份,关键步骤)
Git 每次提交代码时,会记录提交者的身份(用户名和邮箱),用于区分不同开发者,必须配置后才能正常提交代码。
Terminal window
1 | # 配置用户名(建议和 GitHub/GitLab 用户名一致) |
命令作用详解:
git config:Git 的配置命令,用于设置 Git 相关参数;\-\-global:全局参数,意味着该配置在当前电脑所有 Git 项目中生效(若只想针对单个项目配置,去掉该参数,进入项目后再执行);user\.name/user\.email:配置提交者的用户名和邮箱,后续所有提交记录都会显示该信息。
验证配置是否成功:
Terminal window
1 | git config --list |
命令作用:查看当前 Git 的所有配置,若能看到刚才设置的用户名和邮箱,即为配置成功。
二、Git 核心概念(先理解,再操作)
在使用命令前,先明确 3 个核心工作区域,避免操作混乱:
- 工作区(Working Directory):就是你本地电脑上的项目文件夹,你直接修改的文件都在这个区域;
- 暂存区(Stage/Index):临时存放你修改的文件,相当于“缓存区”,用于确认哪些修改需要提交到版本库;
- 版本库(Repository):Git 真正保存版本的地方,存放所有提交记录,可随时回滚到任意历史版本(分为本地版本库和远程版本库,如 GitHub)。
核心流程:工作区修改 → 提交到暂存区 → 提交到本地版本库 → 推送到远程版本库(如 GitHub)。
三、本地仓库操作(最基础,必练)
本地仓库是 Git 操作的基础,无需联网,可独立完成版本管理,适合个人开发或离线工作。
1. 初始化本地仓库(创建新项目)
适用于:新建一个项目,想要用 Git 管理版本(比如本地新建的文件夹,需要变成 Git 仓库)。
Terminal window
1 | # 1. 进入你要管理的项目文件夹(先切换到目标路径) |
命令作用详解:
cd:切换目录命令,用于进入你要操作的项目文件夹(若路径错误,会提示“没有该文件或目录”);git init:初始化 Git 仓库,执行后会在项目文件夹中生成一个隐藏的\.git文件夹(该文件夹是 Git 版本库的核心,不要删除),此时项目就被 Git 管理起来了。
注意:每个项目只需初始化一次,初始化后,该文件夹就是 Git 仓库了。
2. 查看工作区状态(高频命令)
无论做什么操作,建议先查看工作区状态,确认当前文件的修改情况,避免误操作。
Terminal window
1 | git status |
命令作用:查看工作区、暂存区的文件状态,常见输出场景:
- 未修改:提示
nothing to commit, working tree clean(工作区干净,没有任何修改); - 已修改但未提交到暂存区:文件名称显示为
modified(红色); - 已提交到暂存区但未提交到版本库:文件名称显示为
staged(绿色)。
3. 将修改的文件提交到暂存区
适用于:你在工作区修改了文件(如新增、修改、删除文件),需要先提交到暂存区,再准备提交到版本库。
Terminal window收起
1 | # 方式1:提交所有修改的文件(最常用) |
收起
命令作用详解:
git add:将工作区的修改“暂存”起来,告诉 Git“这些修改我要提交到版本库,请先记录下来”;\.:表示当前目录下所有修改的文件(包括新增、修改、删除),简化操作,无需逐个指定文件;- 提交后,再执行
git status,会看到文件变成绿色,提示“changes to be committed”(暂存区有等待提交的内容)。
4. 将暂存区的文件提交到本地版本库
这是 Git 版本管理的核心步骤,提交后,修改会被永久保存到本地版本库,生成一条新的版本记录。
Terminal window
1 | git commit -m "提交说明" |
命令作用详解:
git commit:将暂存区的内容提交到本地版本库,完成一次版本更新;\-m \&\#34;提交说明\&\#34;:必填参数,用于描述本次提交的内容(如“新增登录页面”“修复首页轮播bug”),建议说明清晰,方便后续查看历史记录时,快速知道该版本做了什么修改;- 提交成功后,会提示类似
1 file changed, 2 insertions\(\+\)的信息,表示“1个文件被修改,新增了2行内容”。
注意:必须先执行 git add,再执行 git commit,否则会提示“没有可提交的内容”。
5. 查看提交历史记录
适用于:查看之前的提交记录,包括提交者、提交时间、提交说明、版本号(用于回滚版本)。
Terminal window收起
1 | # 方式1:查看完整历史记录(详细) |
收起
命令作用详解:
git log:显示所有提交记录,每条记录包含版本号(40位哈希值)、提交者、提交时间、提交说明;\-\-oneline:简化输出,每条记录只显示前7位版本号和提交说明,更易查看;git reflog:比git log更全面,会记录所有操作(包括回滚、撤销提交),常用于找回误删的版本。
6. 版本回滚(恢复到历史版本)
适用于:修改出错、代码丢失,需要恢复到之前的某个稳定版本(核心操作,务必掌握)。
Terminal window收起
1 | # 第一步:查看历史版本,获取要回滚的版本号(前7位即可) |
收起
命令作用详解:
git reset \-\-hard 版本号:强制回滚到指定版本,工作区、暂存区的内容都会同步到该版本,之后的提交记录会被删除(无法恢复,谨慎使用);git revert 版本号:不会删除任何提交记录,而是生成一条新的提交记录,将代码恢复到指定版本,后续的修改仍然保留(安全,多人协作时优先使用);- 版本号:通过
git log \-\-oneline获取,如a1b2c3d(前7位即可,Git 会自动识别)。
7. 撤销工作区的修改(未提交到暂存区)
适用于:在工作区修改了文件,但还没执行 git add,想放弃修改,恢复到上一次提交后的状态。
Terminal window
1 | # 撤销单个文件的修改 |
命令作用:放弃工作区的所有未暂存修改,将文件恢复到最近一次 git commit 或 git add 后的状态(注意:撤销后,修改会彻底丢失,无法恢复)。
8. 撤销暂存区的修改(已 add 但未 commit)
适用于:执行了 git add,将修改提交到了暂存区,但还没执行 git commit,想撤销暂存,重新修改。
Terminal window
1 | git reset HEAD 文件名(如:git reset HEAD index.html) |
命令作用:将暂存区的修改撤销回工作区,此时文件状态会从“绿色(staged)”变回“红色(modified)”,之后可以重新修改、重新 add。
四、远程仓库操作(多人协作必备)
远程仓库(如 GitHub、GitLab、Gitee)是用于多人共享代码的服务器,本地仓库的代码可以推送到远程,也可以从远程拉取别人的代码,实现协作开发。
前提:你已经有一个远程仓库(如在 GitHub 上创建了仓库),且本地 Git 已配置好远程仓库地址。
1. 关联远程仓库(第一次绑定)
适用于:本地已有 Git 仓库,想要和远程仓库绑定,实现代码同步。
Terminal window
1 | git remote add origin 远程仓库地址 |
命令作用详解:
git remote:用于管理远程仓库的命令(如添加、删除、查看远程仓库);add:添加远程仓库;origin:远程仓库的别名(默认用 origin,可自定义,如 git remote add github 远程地址),后续操作远程仓库时,用别名即可,无需输入完整地址;- 远程仓库地址:从 GitHub/GitLab 复制,一般分为 HTTPS 和 SSH 两种(HTTPS 无需配置密钥,直接输入账号密码即可;SSH 需要配置密钥,无需每次输入账号密码,推荐长期使用)。
查看已关联的远程仓库:
Terminal window
1 | git remote -v |
命令作用:查看当前本地仓库关联的所有远程仓库,输出会显示远程仓库的别名、地址,以及可进行的操作(fetch:拉取,push:推送)。
2. 从远程仓库拉取代码(同步别人的修改)
适用于:多人协作时,别人将代码推送到了远程仓库,你需要将远程的最新代码拉取到本地,保持本地和远程同步。
Terminal window
1 | # 方式1:拉取远程默认分支(如 main/master)的最新代码(最常用) |
命令作用详解:
git pull:等价于git fetch \+ git merge,即先从远程拉取最新代码到本地临时区域,再自动合并到当前本地分支;origin:远程仓库别名;main/master:远程仓库的默认分支(GitHub 现在默认分支是 main,旧版本是 master);- 注意:拉取代码前,建议先执行
git commit,将本地的修改提交到本地版本库,避免拉取时出现代码冲突。
3. 将本地代码推送到远程仓库(分享自己的修改)
适用于:你在本地完成了代码修改(已 commit 到本地版本库),想要将修改推送到远程仓库,让别人看到你的代码。
Terminal window收起
1 | # 方式1:推送本地默认分支到远程默认分支(第一次推送需加 -u) |
收起
命令作用详解:
git push:将本地版本库的提交记录推送到远程仓库;\-u:第一次推送时使用,用于绑定本地分支和远程分支(如本地 main 分支绑定远程 main 分支),后续推送时,直接输入git push即可,无需指定别名和分支;- 推送失败常见原因:① 本地代码不是最新的(需先
git pull拉取远程最新代码,解决冲突后再推送);② 没有远程仓库的权限(检查账号密码或 SSH 密钥配置)。
4. 克隆远程仓库到本地(第一次下载)
适用于:本地没有该项目,直接从远程仓库下载完整的项目代码(包括所有版本记录)。
Terminal window
1 | 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收起
1 | # 查看本地所有分支 |
收起
命令作用:
git branch:查看本地已有的分支,当前所在分支会用\*标记;\-r:查看远程仓库的所有分支;\-a:查看本地和远程的所有分支(远程分支会显示为remotes/origin/分支名)。
6. 切换/创建分支(多人协作核心)
多人协作时,建议每人在自己的分支上开发,避免直接修改默认分支(main/master),开发完成后再合并到默认分支。
Terminal window展开
1 | # 1. 创建新分支(并切换到该分支,最常用) |
展开
命令作用详解:
git checkout \-b 分支名:一次性完成“创建分支+切换分支”,高效便捷;- 分支命名建议:按功能命名(如
feature/login,表示登录功能分支)、按bug修复命名(如fix/banner\-bug),便于区分。
7. 合并分支(将开发分支的代码合并到默认分支)
适用于:在开发分支(如 develop)完成开发后,将代码合并到默认分支(如 main),让修改生效。
Terminal window
1 | # 1. 先切换到要合并到的目标分支(如 main 分支) |
命令作用:将指定分支(如 develop)的所有修改,合并到当前所在的分支(如 main),合并后,main 分支就包含了 develop 分支的所有代码。
注意:合并时可能会出现代码冲突(如两个人同时修改了同一个文件的同一行),此时需要手动解决冲突:
- 执行
git merge后,Git 会提示“冲突文件”; - 打开冲突文件,找到标记冲突的地方(用
\<\<\<\<\<\<\<、=======、\>\>\>\>\>\>\>标记); - 修改冲突内容(保留需要的代码,删除冲突标记);
- 执行
git add \.和git commit \-m \&\#34;解决合并冲突\&\#34;,完成合并。
8. 删除分支(分支开发完成后)
Terminal window收起
1 | # 删除本地分支(分支已合并到主分支,可安全删除) |
收起
命令作用:删除无用的分支,保持分支结构清晰,避免混乱。
五、常用补充命令(高频实用)
Terminal window展开
1 | # 1. 查看当前分支的提交差异(对比工作区和暂存区) |
展开
每个命令的作用简要说明:
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 的核心操作围绕“本地仓库”和“远程仓库”展开,新手记住以下流程即可快速上手:
- 前期准备:安装 Git → 配置用户名和邮箱;
- 本地开发:初始化仓库(git init)→ 修改文件 → 提交到暂存区(git add .)→ 提交到本地版本库(git commit -m "说明");
- 多人协作:克隆远程仓库(git clone)→ 拉取远程更新(git pull)→ 创建分支开发 → 推送分支到远程(git push)→ 合并分支;
- 问题处理:版本回滚(git reset/git revert)、解决冲突、恢复误删代码(git reflog)。
Git 命令看似多,但常用的只有十几个,多练习几次(比如新建一个测试项目,反复执行 add、commit、push、pull 等操作),就能熟练掌握。记住:所有命令的核心都是“跟踪版本、同步代码”,理解每个命令的作用,比死记硬背更重要。
