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)