一、创建与克隆仓库
|
命令
|
作用
|
|---|---|
git init |
在当前目录初始化一个新的本地仓库
|
git clone <远程仓库地址> |
克隆一个远程仓库到本地
|
二、查看与状态
|
命令
|
作用
|
|---|---|
git status |
查看工作区和暂存区的文件状态(最常用)
|
git log |
查看当前分支的提交历史
|
git log --oneline |
以简洁的一行格式查看提交历史
|
git log --graph --oneline |
图形化显示分支合并历史
|
git diff |
查看工作区与暂存区的差异
|
git diff --staged |
查看暂存区与最后一次提交的差异
|
git show <提交ID> |
显示某次提交的详细信息
|
三、添加与提交
|
命令
|
作用
|
|---|---|
git add <文件名> |
将工作区的指定文件添加到暂存区
|
git add .或 git add -A |
将所有新增、修改、删除的文件添加到暂存区
|
git commit -m "提交信息" |
将暂存区的内容提交到本地仓库
|
git commit -am "提交信息" |
快捷操作:相当于
git add .+ git commit -m(仅对已跟踪文件有效) |
git commit --amend |
修改最近一次提交的提交信息或内容
|
四、分支管理
|
命令
|
作用
|
|---|---|
git branch |
查看所有本地分支(当前分支前有
*号) |
git branch -a |
查看所有分支(包括远程分支)
|
git branch <分支名> |
创建一个新分支
|
git checkout <分支名> |
切换到指定分支
|
git checkout -b <分支名> |
快捷操作:创建并切换到新分支(最常用)
|
git switch <分支名> |
切换到指定分支(Git 2.23+ 推荐)
|
git switch -c <分支名> |
创建并切换到新分支(Git 2.23+ 推荐)
|
git merge <分支名> |
将指定分支合并到当前分支
|
git branch -d <分支名> |
删除已合并的本地分支
|
git branch -D <分支名> |
强制删除本地分支(即使未合并)
|
git branch -r -d origin/<分支名> |
删除本地记录的远程分支引用
|
五、远程仓库操作
|
命令
|
作用
|
|---|---|
git remote -v |
查看已关联的远程仓库地址
|
git remote add origin <远程地址> |
关联一个远程仓库,并命名为
origin(通常用此名) |
git push -u origin <分支名> |
首次推送本地分支到远程,并建立追踪关系(
-u参数) |
git push |
将当前分支的提交推送到其关联的远程分支(已建立追踪后使用)
|
git pull |
拉取并合并:从远程追踪分支拉取最新提交并合并到当前分支
|
git pull --rebase |
拉取并变基:将本地提交"移动"到远程最新提交之后,使历史更整洁
|
git fetch |
仅从远程获取最新提交到本地仓库,不自动合并,需手动合并
|
git push origin --delete <分支名> |
删除远程分支
|
六、撤销与回退
|
命令
|
作用
|
风险等级
|
|---|---|---|
git restore <文件名> |
放弃工作区的修改,恢复到最近一次
git add或 git commit的状态 |
低
|
git restore --staged <文件名> |
将文件从暂存区撤出,但保留工作区的修改
|
低
|
git reset --soft <提交ID> |
回退到指定提交,保留工作区和暂存区的内容
|
中
|
git reset --mixed <提交ID> |
回退到指定提交,保留工作区修改,但清空暂存区(默认选项)
|
中
|
git reset --hard <提交ID> |
彻底回退到指定提交,丢弃工作区和暂存区的所有修改(慎用!)
|
高
|
git revert <提交ID> |
创建一个新的提交来撤销指定提交的更改,安全但会产生额外提交
|
低
|
七、标签管理
|
命令
|
作用
|
|---|---|
git tag |
查看所有标签
|
git tag <标签名> |
为当前提交打一个轻量标签
|
git tag -a <标签名> -m "描述" |
为当前提交打一个附注标签
|
git push origin <标签名> |
推送指定标签到远程
|
git push origin --tags |
推送所有标签到远程
|
git tag -d <标签名> |
删除本地标签
|
git push origin --delete <标签名> |
删除远程标签
|
八、储藏与清理
|
命令
|
作用
|
|---|---|
git stash |
将当前工作区和暂存区的修改"暂存"起来,让工作区变干净
|
git stash save "说明信息" |
储藏时添加说明信息
|
git stash list |
查看所有储藏列表
|
git stash pop |
恢复最近一次储藏的修改,并删除该储藏记录
|
git stash apply stash@{n} |
恢复指定的储藏,但不删除储藏记录
|
git stash drop stash@{n} |
删除指定的储藏记录
|
git stash clear |
清空所有储藏
|
git clean -n |
显示将被删除的未跟踪文件(预览)
|
git clean -f |
强制删除未跟踪文件
|
git clean -fd |
强制删除未跟踪文件和目录
|
九、配置相关
|
命令
|
作用
|
|---|---|
git config --list |
查看所有配置
|
git config --global user.name "用户名" |
设置全局用户名
|
git config --global user.email "邮箱" |
设置全局邮箱
|
git config --global alias.<别名> "命令" |
设置命令别名
|
十、实用技巧命令
|
命令
|
作用
|
|---|---|
git reflog |
查看所有操作记录(可用于恢复误操作)
|
git blame <文件名> |
查看文件的每一行是谁、在何时修改的
|
git grep "关键词" |
在代码库中搜索关键词
|
git bisect start |
使用二分查找定位引入问题的提交
|
git cherry-pick <提交ID> |
将指定提交应用到当前分支
|
十一、常见工作流示例
1. 日常开发流程
2. 解决冲突流程
十二、Git 配置建议
温馨提示
-
使用
git reset --hard等危险命令前,请确保已备份重要更改 -
团队协作时,优先使用
git pull --rebase保持提交历史的整洁 -
定期使用
git fetch查看远程分支变化,避免意外冲突
