GIT 常用命令
【摘要】 Git 是分布式版本控制系统,用于高效管理代码版本。以下是常用命令的分类总结,涵盖基础操作、分支管理、远程协作等核心场景: 一、基础操作初始化仓库git init:初始化本地 Git 仓库(生成 .git 目录)。git clone <仓库URL>:克隆远程仓库到本地。检查状态git status:查看工作区状态(修改、暂存、未跟踪文件)。git log:查看提交历史(--oneline 简...
Git 是分布式版本控制系统,用于高效管理代码版本。以下是常用命令的分类总结,涵盖基础操作、分支管理、远程协作等核心场景:
一、基础操作
-
初始化仓库
git init
:初始化本地 Git 仓库(生成.git
目录)。git clone <仓库URL>
:克隆远程仓库到本地。
-
检查状态
git status
:查看工作区状态(修改、暂存、未跟踪文件)。git log
:查看提交历史(--oneline
简化显示,--graph
图形化分支)。
-
添加文件到暂存区
git add <文件>
:添加指定文件。git add .
或git add -A
:添加所有修改(包括新建文件)。
-
提交更改
git commit -m "提交信息"
:提交暂存区更改到本地仓库。git commit --amend
:修改上一次提交(如补充文件或修改信息)。
-
忽略文件
- 创建
.gitignore
文件,列出无需跟踪的文件或目录(如*.log
、node_modules/
)。
- 创建
二、分支管理
-
创建与切换分支
git branch <分支名>
:创建新分支。git checkout <分支名>
或git switch <分支名>
:切换分支。git checkout -b <分支名>
:创建并切换到新分支。
-
查看分支
git branch
:列出本地分支(*
表示当前分支)。git branch -a
:列出所有分支(包括远程)。
-
合并分支
git merge <分支名>
:将指定分支合并到当前分支(可能产生冲突)。git rebase <分支名>
:变基合并(保持提交历史线性,需解决冲突)。
-
删除分支
git branch -d <分支名>
:删除本地分支(需确保已合并)。git branch -D <分支名>
:强制删除未合并的分支。git push origin --delete <分支名>
:删除远程分支。
三、远程仓库协作
-
关联远程仓库
git remote add origin <仓库URL>
:关联远程仓库(通常命名为origin
)。
-
推送代码
git push -u origin <分支名>
:首次推送本地分支到远程(-u
设置上游跟踪)。git push
:推送已关联的分支到远程。
-
拉取更新
git fetch
:下载远程分支更新(不自动合并)。git pull
:拉取远程更新并合并到当前分支(等价于git fetch + git merge
)。
-
查看远程信息
git remote -v
:显示远程仓库地址。git remote show origin
:查看远程分支详情。
四、冲突处理
-
冲突场景
- 当
git pull
、git merge
或git rebase
时,若同一文件被不同分支修改,会触发冲突。
- 当
-
解决步骤
- Git 会在冲突文件中标记
<<<<<<< HEAD
(当前分支)和>>>>>>> 分支名
(其他分支)的差异。 - 手动编辑文件保留所需内容,删除冲突标记。
- 执行
git add <文件>
标记冲突已解决。 - 继续合并或变基操作(如
git rebase --continue
)。
- Git 会在冲突文件中标记
五、撤销与回退
-
撤销工作区修改
git checkout -- <文件>
:丢弃未暂存的修改(恢复为最近一次git add
或git commit
的状态)。
-
撤销暂存区文件
git reset HEAD <文件>
:将文件从暂存区移出(保留工作区修改)。
-
回退到历史版本
git reset --hard <提交哈希>
:彻底回退到指定提交(丢弃后续所有更改)。git revert <提交哈希>
:生成反向提交撤销更改(保留历史记录,适合协作场景)。
-
重置分支指针
git reset --soft <提交哈希>
:移动分支指针,保留工作区和暂存区更改。git reset --mixed <提交哈希>
(默认):移动指针并清空暂存区,保留工作区更改。
六、标签管理
-
创建标签
git tag <标签名>
:创建轻量标签(指向提交的指针)。git tag -a <标签名> -m "标签信息"
:创建附注标签(推荐,包含更多信息)。
-
查看标签
git tag
:列出所有标签。git show <标签名>
:查看标签详情。
-
推送标签
git push origin <标签名>
:推送单个标签。git push origin --tags
:推送所有标签。
七、高级命令
-
存储临时修改
git stash
:将未提交的修改存入栈中(暂存工作区)。git stash pop
:恢复并删除栈顶修改。git stash list
:查看存储列表。
-
查看提交差异
git diff
:查看工作区与暂存区的差异。git diff --cached
:查看暂存区与最新提交的差异。git diff <分支1> <分支2>
:比较两个分支的差异。
-
子模块管理
git submodule add <仓库URL> <路径>
:添加子模块。git submodule update --init
:初始化并更新子模块。
八、常用配置
-
设置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
-
查看配置
git config --list
:显示所有配置。
-
忽略文件权限变更
git config core.fileMode false
:避免因文件权限变化触发提交。
九、工作流示例
-
典型开发流程
git clone <仓库URL> # 克隆项目 git checkout -b feature # 创建新分支 # 修改代码... git add . # 添加修改 git commit -m "feat: 新功能" # 提交 git push -u origin feature # 推送分支 # 发起 Pull Request(GitHub/GitLab)或合并请求
-
修复 Bug 流程
git checkout main # 切换到主分支 git pull # 拉取最新代码 git checkout -b hotfix # 创建热修复分支 # 修复代码... git commit -m "fix: 修复问题" git push -u origin hotfix # 合并到 main 和开发分支
学习建议
- 实践优先:通过实际项目熟悉命令,避免死记硬背。
- 图形化工具辅助:如 GitKraken、Sourcetree 可视化操作。
- 理解原理:掌握提交、分支、远程仓库的核心概念,而非单纯记忆命令。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)