一、环境配置与初始化
| 命令 | 功能说明 | 示例 |
|---|---|---|
git config --global user.name "用户名" |
配置全局提交者姓名(仅首次使用需配置) | git config --global user.name "lucideyes" |
git config --global user.email "邮箱" |
配置全局提交者邮箱(与平台账号一致) | git config --global user.email "1795844373@qq.com" |
git config --list |
查看当前 Git 配置信息 | - |
git init |
在当前目录初始化本地 Git 仓库 | git init smart_breeding |
git clone <远程仓库地址> |
克隆远程仓库到本地(含完整历史) | git clone https://gitee.com/lucideyes/smart_breeding.git |
二、文件状态与暂存操作
| 命令 | 功能说明 | 示例 |
|---|---|---|
git status |
查看工作区、暂存区文件状态(未跟踪 / 已修改 / 待提交) | - |
git add <文件名> |
将指定文件添加到暂存区 | git add README.md |
git add . |
将所有新增 / 修改文件添加到暂存区(推荐常用) | - |
git add -p |
交互式暂存(按需选择文件片段提交) | - |
git rm --cached <文件名> |
将文件从暂存区移除(回归未跟踪状态) | git rm --cached .idea/ |
git restore --staged <文件名> |
撤销暂存区的修改(Git 2.23+ 替代 git rm --cached) |
git restore --staged app.py |
三、提交与版本日志
| 命令 | 功能说明 | 示例 |
|---|---|---|
git commit -m "提交注释" |
将暂存区内容提交到版本库(注释必填) | git commit -m "完成用户登录功能" |
git commit --amend |
补充修改上次提交(未推送时可用,修改注释 / 追加文件) | git commit --amend -m "修正用户登录逻辑" |
git log |
查看完整提交日志(作者、时间、哈希值、注释) | - |
git log --pretty=oneline |
简洁显示日志(哈希值 + 注释,推荐常用) | - |
git log --graph |
图形化显示分支合并历史 | - |
git reflog |
查看所有操作记录(含回退前版本,用于恢复误操作) | - |
git diff |
对比工作区与暂存区的文件差异 | - |
git diff --cached |
对比暂存区与版本库的最新提交差异 | - |
git diff <提交哈希1> <提交哈希2> |
对比两个版本间的文件差异 | git diff c74cdf5 ecc5502 |
四、版本回退与文件恢复
| 命令 | 功能说明 | 示例 |
|---|---|---|
git reset --hard HEAD^ |
回退到上一版本(HEAD^^ 为上上个,HEAD~n 为前 n 个) | - |
git reset --hard <提交哈希> |
回退到指定版本(哈希值可通过 git log 获取) |
git reset --hard c74cdf5 |
git checkout -- <文件名> |
丢弃工作区未暂存的修改(恢复到暂存区 / 版本库状态) | git checkout -- app.py |
git restore <文件名> |
恢复工作区文件(Git 2.23+ 替代 git checkout --) |
git restore app.py |
五、分支管理(核心协作功能)
| 命令 | 功能说明 | 示例 |
|---|---|---|
git branch |
查看本地所有分支(* 标记当前分支) | - |
git branch -a |
查看本地 + 远程所有分支 | - |
git branch <分支名> |
创建新分支(基于当前分支) | git branch dev |
git checkout <分支名> |
切换到指定分支 | git checkout dev |
git checkout -b <分支名> |
创建并切换到新分支(推荐常用) | git checkout -b feature/login |
git merge <分支名> |
将指定分支合并到当前分支 | 切换到 master 后:git merge dev |
git branch -d <分支名> |
删除已合并的本地分支 | git branch -d dev |
git branch -D <分支名> |
强制删除本地分支(未合并也可删除) | git branch -D feature/login |
git push origin --delete <分支名> |
删除远程分支 | git push origin --delete dev |
六、远程仓库交互
| 命令 | 功能说明 | 示例 |
|---|---|---|
git remote add origin <远程仓库地址> |
关联远程仓库(origin 为默认别名) | git remote add origin https://gitee.com/lucideyes/smart_breeding.git |
git remote -v |
查看远程仓库关联信息(fetch/push 地址) | - |
git remote remove origin |
解除与远程仓库的关联 | - |
git push -u origin <分支名> |
推送本地分支到远程(-u 关联分支,首次推送用) | git push -u origin master |
git push origin <分支名> |
推送本地分支到远程(已关联分支后用) | git push origin dev |
git pull origin <分支名> |
拉取远程分支更新并合并到本地(等价于 fetch+merge) | git pull origin master |
git fetch origin |
拉取远程仓库所有更新(不自动合并,需手动 merge) | - |
七、进阶功能(Stash/Tag/ 忽略文件)
| 命令 | 功能说明 | 示例 |
|---|---|---|
git stash |
临时存储工作区 + 暂存区的未提交修改 | - |
git stash list |
查看所有 stash 记录 | - |
git stash pop |
恢复最近的 stash 记录并删除(推荐常用) | - |
git stash apply <stash@{n}> |
恢复指定 stash 记录(不删除) | git stash apply stash@{0} |
git tag <标签名> |
创建轻量级标签(标记版本) | git tag v1.0 |
git tag -a <标签名> -m "注释" |
创建附注标签(含详细信息,推荐常用) | git tag -a v1.0 -m "第一个正式版本" |
git tag |
查看所有标签 | - |
git push origin <标签名> |
推送单个标签到远程 | git push origin v1.0 |
git push origin --tags |
推送所有标签到远程 | - |
git tag -d <标签名> |
删除本地标签 | git tag -d v1.0 |
git push origin :refs/tags/<标签名> |
删除远程标签 | git push origin :refs/tags/v1.0 |
八、常见问题解决
| 命令 | 功能说明 | 示例 |
|---|---|---|
git pull --rebase |
拉取远程更新并变基(避免多余合并提交) | git pull --rebase origin master |
git config --global --unset credential.helper |
清除凭证助手配置(强制重新输入用户名 / 令牌) | - |
git remote set-url origin <新地址> |
修改远程仓库地址(HTTPS 切换为 SSH 时用) | git remote set-url origin git@ |