GIT 常用命令

举报
林欣 发表于 2025/09/23 11:45:54 2025/09/23
【摘要】 Git 是分布式版本控制系统,用于高效管理代码版本。以下是常用命令的分类总结,涵盖基础操作、分支管理、远程协作等核心场景: 一、基础操作初始化仓库git init:初始化本地 Git 仓库(生成 .git 目录)。git clone <仓库URL>:克隆远程仓库到本地。检查状态git status:查看工作区状态(修改、暂存、未跟踪文件)。git log:查看提交历史(--oneline 简...

Git 是分布式版本控制系统,用于高效管理代码版本。以下是常用命令的分类总结,涵盖基础操作、分支管理、远程协作等核心场景:


一、基础操作

  1. 初始化仓库

    • git init:初始化本地 Git 仓库(生成 .git 目录)。
    • git clone <仓库URL>:克隆远程仓库到本地。
  2. 检查状态

    • git status:查看工作区状态(修改、暂存、未跟踪文件)。
    • git log:查看提交历史(--oneline 简化显示,--graph 图形化分支)。
  3. 添加文件到暂存区

    • git add <文件>:添加指定文件。
    • git add .git add -A:添加所有修改(包括新建文件)。
  4. 提交更改

    • git commit -m "提交信息":提交暂存区更改到本地仓库。
    • git commit --amend:修改上一次提交(如补充文件或修改信息)。
  5. 忽略文件

    • 创建 .gitignore 文件,列出无需跟踪的文件或目录(如 *.lognode_modules/)。

二、分支管理

  1. 创建与切换分支

    • git branch <分支名>:创建新分支。
    • git checkout <分支名>git switch <分支名>:切换分支。
    • git checkout -b <分支名>:创建并切换到新分支。
  2. 查看分支

    • git branch:列出本地分支(* 表示当前分支)。
    • git branch -a:列出所有分支(包括远程)。
  3. 合并分支

    • git merge <分支名>:将指定分支合并到当前分支(可能产生冲突)。
    • git rebase <分支名>:变基合并(保持提交历史线性,需解决冲突)。
  4. 删除分支

    • git branch -d <分支名>:删除本地分支(需确保已合并)。
    • git branch -D <分支名>:强制删除未合并的分支。
    • git push origin --delete <分支名>:删除远程分支。

三、远程仓库协作

  1. 关联远程仓库

    • git remote add origin <仓库URL>:关联远程仓库(通常命名为 origin)。
  2. 推送代码

    • git push -u origin <分支名>:首次推送本地分支到远程(-u 设置上游跟踪)。
    • git push:推送已关联的分支到远程。
  3. 拉取更新

    • git fetch:下载远程分支更新(不自动合并)。
    • git pull:拉取远程更新并合并到当前分支(等价于 git fetch + git merge)。
  4. 查看远程信息

    • git remote -v:显示远程仓库地址。
    • git remote show origin:查看远程分支详情。

四、冲突处理

  1. 冲突场景

    • git pullgit mergegit rebase 时,若同一文件被不同分支修改,会触发冲突。
  2. 解决步骤

    • Git 会在冲突文件中标记 <<<<<<< HEAD(当前分支)和 >>>>>>> 分支名(其他分支)的差异。
    • 手动编辑文件保留所需内容,删除冲突标记。
    • 执行 git add <文件> 标记冲突已解决。
    • 继续合并或变基操作(如 git rebase --continue)。

五、撤销与回退

  1. 撤销工作区修改

    • git checkout -- <文件>:丢弃未暂存的修改(恢复为最近一次 git addgit commit 的状态)。
  2. 撤销暂存区文件

    • git reset HEAD <文件>:将文件从暂存区移出(保留工作区修改)。
  3. 回退到历史版本

    • git reset --hard <提交哈希>:彻底回退到指定提交(丢弃后续所有更改)。
    • git revert <提交哈希>:生成反向提交撤销更改(保留历史记录,适合协作场景)。
  4. 重置分支指针

    • git reset --soft <提交哈希>:移动分支指针,保留工作区和暂存区更改。
    • git reset --mixed <提交哈希>(默认):移动指针并清空暂存区,保留工作区更改。

六、标签管理

  1. 创建标签

    • git tag <标签名>:创建轻量标签(指向提交的指针)。
    • git tag -a <标签名> -m "标签信息":创建附注标签(推荐,包含更多信息)。
  2. 查看标签

    • git tag:列出所有标签。
    • git show <标签名>:查看标签详情。
  3. 推送标签

    • git push origin <标签名>:推送单个标签。
    • git push origin --tags:推送所有标签。

七、高级命令

  1. 存储临时修改

    • git stash:将未提交的修改存入栈中(暂存工作区)。
    • git stash pop:恢复并删除栈顶修改。
    • git stash list:查看存储列表。
  2. 查看提交差异

    • git diff:查看工作区与暂存区的差异。
    • git diff --cached:查看暂存区与最新提交的差异。
    • git diff <分支1> <分支2>:比较两个分支的差异。
  3. 子模块管理

    • git submodule add <仓库URL> <路径>:添加子模块。
    • git submodule update --init:初始化并更新子模块。

八、常用配置

  1. 设置用户名和邮箱

    • git config --global user.name "Your Name"
    • git config --global user.email "your@email.com"
  2. 查看配置

    • git config --list:显示所有配置。
  3. 忽略文件权限变更

    • git config core.fileMode false:避免因文件权限变化触发提交。

九、工作流示例

  1. 典型开发流程

    git clone <仓库URL>       # 克隆项目
    git checkout -b feature   # 创建新分支
    # 修改代码...
    git add .                # 添加修改
    git commit -m "feat: 新功能"  # 提交
    git push -u origin feature # 推送分支
    # 发起 Pull Request(GitHub/GitLab)或合并请求
    
  2. 修复 Bug 流程

    git checkout main        # 切换到主分支
    git pull                 # 拉取最新代码
    git checkout -b hotfix   # 创建热修复分支
    # 修复代码...
    git commit -m "fix: 修复问题"
    git push -u origin hotfix
    # 合并到 main 和开发分支
    

学习建议

  1. 实践优先:通过实际项目熟悉命令,避免死记硬背。
  2. 图形化工具辅助:如 GitKraken、Sourcetree 可视化操作。
  3. 理解原理:掌握提交、分支、远程仓库的核心概念,而非单纯记忆命令。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。