Git常用命令的详细指南
一、仓库基础操作
命令 |
作用 |
示例 |
git init |
初始化新仓库 |
git init project |
git clone |
克隆远程仓库 |
git clone https://github.com/user/repo.git |
git status |
查看工作区状态 |
git status -s (简洁模式) |
二、文件操作管理
命令 |
作用 |
注意事项 |
git add |
添加文件到暂存区 |
git add . (添加全部)
git add *.cpp (通配符) |
git rm |
删除文件 |
git rm --cached file (保留本地文件) |
git mv |
移动/重命名文件 |
git mv old.txt new.txt |
三、提交历史管理
命令 |
作用 |
使用场景 |
git commit |
提交变更 |
git commit -m "fix: 修复登录逻辑" |
git log |
查看提交历史 |
git log --oneline --graph (图形化查看) |
git diff |
对比差异 |
git diff HEAD~2..HEAD (对比最近两次提交) |
四、分支管理
命令 |
作用 |
组合技巧 |
git branch |
分支操作 |
git branch -d feature (删除分支) |
git checkout |
切换分支 |
git checkout -b dev (创建并切换) |
git merge |
合并分支 |
git merge --no-ff feature (保留合并历史) |
git rebase |
变基操作 |
git rebase -i HEAD~3 (交互式合并提交) |
五、远程协作
命令 |
作用 |
典型流程 |
git remote |
管理远程地址 |
git remote -v (查看远程地址) |
git push |
推送代码 |
git push origin main --force (强制推送,慎用) |
git pull |
拉取更新 |
git pull origin dev --rebase (变基式拉取) |
git fetch |
获取远程更新 |
git fetch && git merge origin/main |
六、撤销与恢复
场景 |
命令 |
说明 |
撤销未add修改 |
git restore <file> |
还原到最近提交状态 |
撤销已add文件 |
git reset HEAD <file> |
从暂存区移除 |
修改提交信息 |
git commit --amend |
修改最后一次提交 |
回退到历史版本 |
git reset --hard HEAD^ |
彻底回退(慎用) |
恢复误删文件 |
git checkout HEAD -- <file> |
从版本库恢复文件 |
七、高级操作技巧
储藏修改
git stash save "WIP: 临时保存"
git stash list
git stash pop
标签管理
git tag v1.0.0
git tag -a v1.1.0 -m "正式版"
git push origin --tags
子模块管理
git submodule add https://github.com/lib/lib.git
git submodule update --init --recursive
八、典型工作流示例
git checkout -b feature/login
git add .
git commit -m "完成登录功能开发"
git push origin feature/login
git checkout main
git pull origin main
git merge feature/login
git push origin main
九、配置优化建议
git config --global alias.co checkout
git config --global core.editor "code --wait"
git config --global credential.helper cache
ssh-keygen -t ed25519 -C "your_email@example.com"
十、问题诊断工具
命令 |
用途 |
git reflog |
查看所有操作历史(救命命令) |
git bisect |
二分法定位问题提交 |
git blame |
查看文件修改历史 |