在软件开发中,版本控制是团队协作和代码管理的核心工具。Git 作为目前最流行的分布式版本控制系统,几乎成为开发者必备技能。但对于新手来说,Git 的命令和概念可能让人望而生畏。本文将详细解析 Git 的基础命令,帮助你快速上手,高效管理代码!
一、Git 的核心概念
在深入命令之前,先理解 Git 的核心概念:
-
工作区 (Working Directory)
你当前编辑的代码目录,所有文件的修改都在这里进行。 -
暂存区 (Staging Area)
临时保存即将提交的改动,像一个“打包区”,允许你选择性地提交部分修改。 -
本地仓库 (Local Repository)
保存项目历史记录的地方,每次提交(commit)都会生成一个快照。 -
远程仓库 (Remote Repository)
托管在服务器上的仓库(如 GitHub、GitLab),用于团队协作和代码备份。 -
分支 (Branch)
代码的独立开发线,默认分支通常是 main 或 master。
二、基础命令详解
- 初始化与克隆仓库
git init // 将当前目录初始化为 Git 仓库,生成 .git 隐藏文件夹。
git clone <远程仓库地址> // 克隆远程仓库到本地(完整下载代码和历史记录)。
- 提交代码
- git add <文件名>
将工作区的修改添加到暂存区。
git add index.html # 添加单个文件
git add . # 添加所有修改
- git commit -m “提交说明”
将暂存区的改动提交到本地仓库,生成一个唯一的提交 ID。
git commit -m "修复登录页面的样式问题"
- git status
查看工作区和暂存区的状态,显示哪些文件被修改或未跟踪。
- 查看与回退历史
- git log
查看提交历史,包括提交者、时间、提交说明。
git log # 完整历史
git log --oneline # 简洁模式(仅显示提交ID和说明)
- git diff
查看工作区与暂存区的差异(未暂存的修改)。
git diff # 所有文件差异
git diff index.html # 指定文件的差异
- git reset
回退到某个提交版本(慎用!会丢失后续提交)。
git reset --hard HEAD^ # 回退到上一个提交(丢弃当前修改)
git reset --soft HEAD~2 # 回退到前两个提交(保留修改到暂存区)
- 分支管理
- git branch
查看本地所有分支,当前分支前会标 *。
git branch # 查看分支
git branch dev # 创建名为 dev 的新分支
- git checkout <分支名>
切换到指定分支。
git checkout dev # 切换到 dev 分支
git checkout -b feature # 创建并切换到 feature 分支
- git merge <分支名>
将指定分支合并到当前分支(可能需要解决冲突)。
git checkout main
git merge dev # 将 dev 分支合并到 main
- 远程协作
- git remote add <别名> <远程仓库地址>
关联本地仓库与远程仓库(如 GitHub)。
git remote add origin https://github.com/user/project.git
- git push <远程仓库别名> <分支名>
将本地分支推送到远程仓库。
git push origin main # 推送 main 分支
git push -u origin dev # 首次推送时关联远程分支(后续可简写为 git push)
- git pull <远程仓库别名> <分支名>
拉取远程分支的更新并合并到当前分支。
git pull origin main
- 其他实用命令
- git stash
临时保存工作区的修改(适用于需要切换分支但不想提交的场景)。
git stash # 保存当前修改
git stash list # 显示已暂存列表
git stash pop # 恢复最近一次保存的修改
- git tag
为提交打标签(常用于版本发布)。
git tag v1.0.0 # 创建标签
git push origin v1.0.0 # 推送标签到远程
三、常见场景示例
场景 1:首次提交代码到远程仓库
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/user/project.git
git push -u origin main
场景 2:修复 Bug 并创建新分支
git checkout -b fix-bug-123 # 创建并切换到修复分支
# 修改代码...
git add .
git commit -m "修复Bug #123"
git checkout main # 切换回主分支
git merge fix-bug-123 # 合并修复分支
git push origin main