仓库操作
命令 | 说明 |
|---|
git init
| 初始化新仓库 |
git clone <url>
| 克隆远程仓库 |
提交相关
命令 | 说明 |
|---|
git status
| 查看当前状态 |
git add <file>
| 暂存文件 |
git add .
| 暂存所有修改 |
git commit -m "消息"
| 提交暂存区 |
git commit -am "消息"
| 跳过 git add,直接提交已跟踪文件 |
git log --oneline
| 查看简洁提交历史 |
git log --oneline --all
| 查看所有分支历史 |
git log --oneline --graph
| 图形化查看历史 |
分支相关
命令 | 说明 |
|---|
git branch
| 查看本地分支列表 |
git branch <name>
| 创建新分支 |
git checkout <name>
| 切换分支 |
git checkout -b <name>
| 创建并切换分支 |
git merge <name>
| 合并指定分支到当前分支 |
git branch -d <name>
| 删除已合并的分支 |
回退 / 恢复
命令 | 说明 |
|---|
git checkout <hash> -- <file>
| 将指定文件恢复到旧版本(不改历史) |
git checkout <hash>
| 切换到某次提交(分离头指针) |
git revert <hash>
| 撤销某次提交(新增一个反向提交,不改历史) |
git reset --soft <hash>
| 回退到某次提交,保留工作区修改 |
git reset --hard <hash>
| 回退到某次提交,丢弃所有修改(危险) |
git restore <file>
| 丢弃工作区的修改 |
git restore --staged <file>
| 将暂存区的文件移出 |
revert 冲突处理
命令 | 说明 |
|---|
git add <file>
| 手动解决冲突后,标记已解决 |
git revert --continue
| 继续执行 revert |
git revert --abort
| 放弃这次 revert,回到之前状态 |
git revert --skip
| 跳过这次提交的 revert |
远程操作
命令 | 说明 |
|---|
git remote add origin <url>
| 添加远程仓库 |
git push origin <name>
| 推送分支到远程 |
git push -u origin <name>
| 推送并建立关联(首次推送用) |
git pull
| 拉取远程并合并 |
git fetch
| 拉取远程但不合并 |
核心概念
工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库
git checkout -- <file> git reset git pull
commit hash:git 自动计算的 SHA-1 值,用于定位某次提交
HEAD:指向当前所在的提交或分支
detached HEAD:不在任何分支上,只指向某次历史提交
git checkout <hash> -- <file> 和 git revert <hash> 是安全的,不改写历史