Git
git 常用命令
配置与初始化
| 命令 | 说明 |
|---|---|
git config --global user.name "你的名字" | 设置全局用户名 |
git config --global user.email "your@email.com" | 设置全局邮箱 |
git config --list | 查看配置 --global:全局 --local:当前项目 |
git init | 在当前目录初始化新仓库(生成 .git 文件夹) |
git clone <仓库地址> | 克隆远程仓库到本地(如 git clone https://github.com/HelloCris/CrisWiki.git) |
💡 首次使用 Git 必须配置
user.name和user.email,否则无法提交。
查看状态与日志
| 命令 | 说明 |
|---|---|
git status | 查看工作区状态(哪些文件被修改/新增/未跟踪) |
git log | 查看提交历史(按时间倒序) |
git log --oneline | 简洁版日志(一行一条) |
添加、提交(核心流程)
bash
# 1. 修改代码后,将文件加入暂存区(stage)
git add <文件名> # 添加单个文件
git add . # 添加当前目录所有变更(推荐)
# 2. 提交到本地仓库
git commit -m "描述本次修改"✅ 黄金流程:
git add .→git commit -m "xxx"→git push
同步远程仓库
| 命令 | 说明 |
|---|---|
git pull | 拉取最新代码 = git fetch + git merge |
git fetch origin | 仅更新远程分支信息(不合并到本地) |
git push | 推送本地提交到远程仓库 |
git remote -v | 查看远程仓库地址(origin) |
git remote prune origin | 本地仓清除已删除的远程分支引用 |
⚠️ 注意
提交前先
git pull,避免冲突推送失败?可能是远程有新提交 → 先
pull再push
分支操作
| 命令 | 说明 |
|---|---|
git branch | 列出所有本地分支,-a 所有分支(包括远程) |
git checkout <分支名> | 切换到指定分支 |
git checkout -b <新分支名> | 创建并切换到新分支(最常用!) |
git merge <分支名> | 将指定分支合并到当前分支 |
git branch -d <分支名> | 删除已合并的分支 |
git stash | 临时“藏”起当前修改(切换分支前常用) |
git stash pop | 恢复最近一次 stash 的内容 |
撤销与回退
| 场景 | 命令 | 说明 |
|---|---|---|
已 commit,想修改上一次提交 | git commit --amend -m "新描述" | 修改最近一次提交(慎用!勿改已推送的提交) |
| 回退到上一次提交(本地未推送) | git reset --soft HEAD~1 | ⚠️ 仅限本地未推送时使用 |
| 撤销某次历史提交(已推送远程) | git revert <commit-hash> | 撤销某次历史提交,但不会删除原有提交记录 |
常用钩子(Git Hooks)
| 钩子(Hook) | 触发时机 | 典型用途 | 能否阻止操作? |
|---|---|---|---|
pre-commit | git commit 之前 | - 自动格式化 .md/.vue/.js- 运行 ESLint/Prettier - 检查敏感内容 | 是(退出码非0即阻止) |
commit-msg | 提交信息写好后、提交完成前 | - 校验 commit message 格式(如 Conventional Commits) - 强制包含 Jira 编号 | 是(可拒绝不规范提交) |
pre-push | git push 之前 | - 运行完整构建(npm run build)- 执行集成测试 - 防止直接推送到主分支 | 是(可阻止推送) |
post-merge | git pull 或 git merge 成功后 | - 检测 package.json 变更并自动 npm install- 更新本地配置 | 否(仅通知或辅助操作) |
post-checkout | git checkout <branch> 或 git clone 后 | - 根据分支切换环境配置(如 .env)- 初始化本地开发资源 | 否 |
GitHub
简介
什么是Git: 一个免费、开源的版本控制软件
什么是版本控制系统: 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。(记录文件的所有历史变化、随时可恢复到任何一个历史状态、多人协作开发或修改错误恢复)
什么是Github: 全球最大的社交编程及代码托管网站( https://github.com/ )。 Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名)
Github和Git是什么关系:Git是版本控制软件。Github是项目代码托管的平台,借助git来管理项目代码
基本概念
| 概念 | 描述 |
|---|---|
| 仓库(Repository) | 用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库 |
| 收藏(Star) | 收藏项目,方便下次查看 |
| 复制克隆项目(Fork) | 复制过来的项目是独立存在的,可用于自己使用和修改 |
| 发起请求(Pull Request) | 当你为项目新增了功能,觉得不错,想将其合并到原项目中时使用 |
| 关注(Watch) | 关注项目,当项目更新时可以接收到通知 |
| 事务卡片(Issue) | 发现代码BUG但目前没有成型代码,需要讨论时使用 |
搭建网站
个人站点
- 访问:https://用户名.github.io
- 搭建步骤:
- 创建个人站点 -> 新建仓库(注意:仓库名必须是 用户名.github.io)
- 在仓库下新建index.html的文件
注意:github pages只支持静态网页 仓库里面只能是.html文件