Git常用操作(2)
一、Git 基础配置(首次使用)
# 配置用户名(与GitHub/Gitee等平台一致)
git config --global user.name "Your Name"# 配置用户邮箱(与平台注册邮箱一致)
git config --global user.email "your.email@example.com"# 查看配置信息
git config --list# 配置默认编辑器(如VS Code)
git config --global core.editor "code --wait"
二、仓库初始化与克隆
# 初始化本地仓库(在当前目录创建.git文件夹)
git init# 克隆远程仓库到本地(完整复制项目代码)
git clone <远程仓库地址> # 例:git clone https://github.com/username/repo.git# 克隆后进入项目目录
cd <仓库名>
三、文件状态管理(核心操作)
1. 查看文件状态
# 查看工作区与暂存区状态
git status# 简洁显示状态(??未跟踪,A已暂存,M已修改)
git status -s
2. 工作区 → 暂存区(准备提交)
# 添加指定文件到暂存区
git add <文件名> # 例:git add index.html# 添加当前目录所有文件到暂存区(不含.gitignore排除的文件)
git add .# 添加所有修改(包括删除的文件)
git add -A
3. 暂存区 → 版本库(提交修改)
# 提交暂存区文件到本地仓库,必须写提交信息
git commit -m "提交说明:做了什么修改" # 例:git commit -m "修复登录按钮样式bug"# 跳过暂存区,直接提交工作区所有修改(仅限已跟踪文件)
git commit -am "提交说明"# 修改最近一次提交(未推送到远程时使用)
git commit --amend
四、版本历史查看与回退
# 查看提交历史(完整信息)
git log# 简洁查看历史(一行显示一条)
git log --oneline# 查看最近n次提交
git log -n 3 # 查看最近3次# 回退到指定版本(commit_id是版本号,可从log获取)
git reset --hard <commit_id> # 例:git reset --hard a1b2c3d# 查看所有操作记录(包括已回退的版本),用于找回误删版本
git reflog
五、分支操作(多人协作核心)
# 查看所有分支(当前分支前有*)
git branch# 创建新分支
git branch <分支名> # 例:git branch feature/login# 切换到指定分支
git checkout <分支名> # 例:git checkout feature/login# 创建并切换到新分支(上面两条命令的简写)
git checkout -b <分支名> # 例:git checkout -b bugfix/payment# 合并指定分支到当前分支(如合并feature分支到main)
git merge <分支名> # 先切到main分支,再执行git merge feature/login# 删除分支(已合并到主分支后)
git branch -d <分支名># 强制删除未合并的分支(谨慎使用)
git branch -D <分支名>
六、远程仓库交互(多人协作)
# 查看远程仓库地址
git remote -v# 关联远程仓库(本地仓库首次推送到远程时)
git remote add origin <远程仓库地址> # origin是远程仓库的默认别名# 拉取远程仓库最新代码(合并到当前分支)
git pull origin <分支名> # 例:git pull origin main# 推送本地分支到远程仓库(首次推送需加-u关联)
git push -u origin <分支名> # 例:git push -u origin feature/login# 后续推送已关联的分支,直接用
git push# 拉取远程所有分支信息(更新本地分支列表)
git fetch
七、撤销操作(后悔药)
# 撤销工作区修改(恢复到最近一次commit或add的状态)
git checkout -- <文件名> # 例:git checkout -- index.html# 撤销暂存区修改(将暂存区文件放回工作区)
git reset HEAD <文件名> # 例:git reset HEAD index.html# 放弃本地所有未提交的修改(谨慎使用!会删除未跟踪的文件)
git reset --hard HEAD
git clean -fd
八、.gitignore 文件(必用技巧)
创建.gitignore
文件,添加不需要纳入版本控制的文件 / 目录:
# 例:.gitignore内容
node_modules/ # 忽略node_modules目录
*.log # 忽略所有.log文件
.DS_Store # 忽略Mac系统的隐藏文件
dist/ # 忽略打包后的目录
九、常用场景组合命令
- 日常开发流程:
git pull origin main # 拉取最新代码
# 编写代码...
git add . # 添加修改
git commit -m "完成XX功能" # 提交
git push # 推送到远程
- 修复紧急 bug:
git stash # 暂存当前工作区修改(未提交的)
git checkout main # 切到主分支
git pull # 拉最新代码
git checkout -b bugfix/xxx # 创建bug修复分支
# 修复bug...
git add .
git commit -m "修复XXbug"
git push -u origin bugfix/xxx
# 修复完成后切回原分支,恢复工作区
git checkout feature/old
git stash pop
十、命令速记口诀
- 工作区→暂存区:
git add
- 暂存区→本地库:
git commit -m
- 本地→远程:
git push
- 远程→本地:
git pull
- 分支操作:
git branch
/checkout
/merge
- 历史查看:
git log
/reflog
- 后悔操作:
checkout --
(工作区)、reset
(暂存区 / 版本回退)