Git是目前最流行的分布式版本管理系统,以下按照使用场景和功能模块进行分类介绍
一、初始化与配置 (Initial Setup)
在项目开始或首次使用Git时需要操作
bash
// 1、全局配置用户信息(只需设置一次)
git config --global user.name "Your Name"
git config --global user.email "You Email Url"
// 2、查看当前配置
git clone --list
// 3、初始化本地仓库
git init
// 4、克隆远程仓库
git clone <远程仓库地址>
// 5、克隆远程指定仓库分支
git clone -b <分支名> <仓库地址>
二、分支管理 (Branch Management)
用于并行开发、功能隔离和代码合并
bash
// 1、查看分支
git branch // 本地分支
git branch -r // 远程分支
git branch -a // 所有分支
// 2、创建与切换
git branch <分支名> // 创建分支
git checkout <分支名> // 切换分支
git switch <分支名> // 切换分支(Git 2.23+ 推荐)
git checkout -b <分支名> // 创建并切换
git switch -c <分支名> // 创建并切换(Git 2.23+ 推荐)
// 3、合并分支
git merge <分支名> // 将指定分支合并到当前分支
git merge --no-ff <分支名> // 强制创建合并提交,保留分支历史
// 4、删除分支
git branch -d <分支名> // 删除已合并的本地分支
git branch -D <分支名> // 强制删除本地分支
git push origin --delete <分支名> // 删除远程分支
三、远程协作(Remote Operations)
与远程仓库进行同步
bash
// 1、关联远程仓库
git remote add origin <分支名>
git remote -v // 查看远程仓库地址
// 2、拉取代码
git fetch origin // 下载远程更新,但不合并(安全推荐)
git pull origin <分支名> // 下载并合并(相当于 fetch + merge)
git pull --rebase // 下载并变基,保持提交历史线形
// 3、推送代码
git push // 推送到当前已关联的远程分支
git push origin <分支名> // 推送到指定的远程分支
git push -u origin <分支名> // 首次推送并建立追踪关系
git push --all origin // 推送所有分支
四、版本回退与历史查看(History & Reset)
当需要查看历史记录或撤销错误提交使用时使用。
bash
// 1、查看日志
git log // 详细历史
git log --oneline // 简洁单行显示
git log --graph // 图形化显示分支合并情况
git reflog // 查看所有 HEAD 变动记录(找回丢失提价的救命稻草)
// 2、回退版本
git reset --soft HEAD~1 // 回退 commit,保留修改在暂存区
git reset --mixed HEAD~1 // 回退 commit,保留修改在工作区(默认)
git reset --head HEAD~1 // 回退 commit,丢弃所有修改(危险)
// 3、撤销某次提交(生成新的反向提交,适合已推送到远程的情况)
git revert <commit-id>
// 4、修改上一次提交
git commit --amend -m "提交信息"
git commit --amend --no-edit # 仅添加遗漏文件,不修改休息
五、临时保存(Stash)
当需要切换分支但当前工作并未完成,又不想提交时使用。
bash
git stash "备注信息" // 暂存当前修改
git stash list // 查看暂存列表
git stash pop // 恢复最近一次暂存并删除记录
git stash apply // 恢复最近一次暂存但保留记录
git stash clear // 清空所有暂存
六、标签管理(Tags)
用于发布版本标记。
bash
git tag v1.0.0 // 创建轻量标签
git tag -a v1.0.0 -m "版本说明" // 创建带注释标签
git push origin v1.0.0 // 推送指定标签
git push origin --tags // 推送所有标签
git tag -d v1.0.0 // 删除本地标签
git push origin --delete v1.0.0 // 删除远程标签
七、日常开发高频命令(Daily Workflow)
这是开发者日常使用频率最高的命令组合:修改 ---> 暂存 ---> 提交。
bash
// 1、查看状态(红色为未暂存,绿色为已暂存)
git status
// 2、查看代码差异
git diff // 工作区 vs 暂存区
git diff --staged // 暂存区 vs 最新提交(也可以用 git diff --cached)
// 3、添加文件到暂存区
git add <文件名> // 添加指定文件
git add . // 添加所有变更文件(注意 .gitignore 规则)
git add -u // 仅添加已被跟踪且修改的文件(不添加新文件)
// 4、提交到本地仓库
git commit -m "提交说明"
git commit -am "提交说明" // 跳过 add,直接提交所有已跟踪文件的修改
// 5、撤销操作
git restore <文件名> // 撤销工作区的修改(Git 2.23+)
git restore --staged <文件名> // 撤销暂存区的修改(Git 2.23+)
// 旧版等效命令
git checkout -- <文件名>
git reset HEAD <文件名>