Git 命令大全:从基础到高级操作

Git 是一个分布式版本控制系统,广泛用于代码管理、协作开发和版本控制。以下是 Git 的所有核心命令及其详细说明,涵盖 基础操作、分支管理、远程操作、撤销修改、高级操作 等场景。


一、基础操作

1. 初始化仓库

  • 用途:创建一个新的 Git 仓库。
  • 命令
bash 复制代码
git init
  • 案例
bash 复制代码
# 在项目目录下初始化 Git 仓库
cd my-project
git init

2. 查看仓库状态

  • 用途:查看当前工作区、暂存区和提交历史的状态。
  • 命令
bash 复制代码
git status
  • 案例
bash 复制代码
# 查看哪些文件被修改但未提交
git status

3. 添加文件到暂存区

  • 用途:将工作区的文件添加到暂存区(Staging Area)。
  • 命令
bash 复制代码
git add <文件名># 添加单个文件
git add .# 添加所有文件
  • 案例
bash 复制代码
# 添加 README.md 到暂存区
git add README.md

4. 提交更改

  • 用途:将暂存区的更改提交到本地仓库。
  • 命令
bash 复制代码
git commit -m "提交信息"
  • 案例
bash 复制代码
# 提交 README.md 的修改
git commit -m "Update README with project description"

5. 查看提交历史

  • 用途:查看提交记录。
  • 命令
bash 复制代码
git log
  • 案例
bash 复制代码
# 查看最近 3 条提交记录
git log -3

二、分支管理

1. 查看分支

  • 用途:列出当前仓库的所有分支。
  • 命令
bash 复制代码
git branch
  • 案例
bash 复制代码
# 查看本地分支
git branch

2. 创建分支

  • 用途:创建一个新分支。
  • 命令
bash 复制代码
git branch <分支名>
  • 案例
bash 复制代码
# 创建名为 feature-login 的分支
git branch feature-login

3. 切换分支

  • 用途:切换到指定分支。
  • 命令
bash 复制代码
git checkout <分支名>
  • 案例
bash 复制代码
# 切换到 feature-login 分支
git checkout feature-login

4. 合并分支

  • 用途:将指定分支的更改合并到当前分支。
  • 命令
bash 复制代码
git merge <分支名>
  • 案例
bash 复制代码
# 切换到 main 分支并合并 feature-login 的更改
git checkout main
git merge feature-login

5. 删除分支

  • 用途:删除本地或远程分支。
  • 命令
bash 复制代码
git branch -d <分支名># 删除本地分支
git push origin --delete <分支名># 删除远程分支
  • 案例
bash 复制代码
# 删除本地的 feature-login 分支
git branch -d feature-login

# 删除远程的 feature-login 分支
git push origin --delete feature-login

三、远程操作

1. 关联远程仓库

  • 用途:将本地仓库与远程仓库(如 GitHub)关联。
  • 命令
bash 复制代码
git remote add origin <远程仓库URL>
  • 案例
bash 复制代码
# 关联 GitHub 仓库
git remote add origin https://github.com/username/repo.git

2. 推送代码到远程仓库

  • 用途:将本地提交推送到远程仓库。
  • 命令
bash 复制代码
git push -u origin <分支名>
  • 案例
bash 复制代码
# 首次推送 main 分支
git push -u origin main

3. 拉取远程仓库代码

  • 用途:从远程仓库拉取最新代码。
  • 命令
bash 复制代码
git pull origin <分支名>
  • 案例
bash 复制代码
# 拉取 main 分支的最新代码
git pull origin main

4. 查看远程仓库信息

  • 用途:查看当前关联的远程仓库。
  • 命令
bash 复制代码
git remote -v
  • 案例
bash 复制代码
# 查看远程仓库地址
git remote -v

四、撤销修改

1. 撤销工作区修改

  • 用途:丢弃工作区的修改。
  • 命令
bash 复制代码
git restore <文件名>
  • 案例
bash 复制代码
# 撤销 README.md 的修改
git restore README.md

2. 撤销暂存区修改

  • 用途:将文件从暂存区移回工作区。
  • 命令
bash 复制代码
git restore --staged <文件名>
  • 案例
bash 复制代码
# 撤销 README.md 的暂存
git restore --staged README.md

3. 撤销提交

  • 用途:撤销最近的一次提交(保留更改)。
  • 命令
bash 复制代码
git reset --soft HEAD~1
  • 案例
bash 复制代码
# 撤销最近一次提交,但保留更改
git reset --soft HEAD~1

4. 撤销提交并删除更改

  • 用途:撤销提交并丢弃更改。
  • 命令
bash 复制代码
git reset --hard HEAD~1

五、高级操作

1. 重写历史(rebase)

  • 用途:将当前分支的提交历史合并到另一个分支上。
  • 命令
bash 复制代码
git rebase <分支名>
  • 案例
bash 复制代码
# 将 feature-login 的提交合并到 main 分支上
git checkout feature-login
git rebase main

2. 应用特定提交(cherry-pick)

  • 用途:将某个提交应用到当前分支。
  • 命令
bash 复制代码
git cherry-pick <提交哈希>
  • 案例
bash 复制代码
# 应用提交 abc1234
git cherry-pick abc1234

3. 暂存修改(stash)

  • 用途:临时保存未提交的修改。
  • 命令
bash 复制代码
git stash
git stash apply
  • 案例
bash 复制代码
# 暂存修改
git stash

# 切换分支后恢复修改
git stash apply

4. 标签管理

  • 用途:为特定提交打标签(如版本号)。
  • 命令
bash 复制代码
git tag <标签名># 创建标签
git push origin <标签名># 推送标签到远程
  • 案例
bash 复制代码
# 为最新提交打标签 v1.0
git tag v1.0

# 推送标签到远程仓库
git push origin v1.0

5. 子模块管理

  • 用途:将外部仓库作为子模块嵌入当前项目。
  • 命令
bash 复制代码
git submodule add <仓库URL># 添加子模块
git submodule update --init# 初始化子模块

六、配置与用户管理

1. 配置用户名和邮箱

  • 用途:设置提交者身份信息。
  • 命令
bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

2. 查看配置

  • 用途:查看当前 Git 配置。
  • 命令
bash 复制代码
git config --list

3. 设置默认编辑器

  • 用途:修改 Git 使用的编辑器(如 Vim、Nano)。
  • 命令
bash 复制代码
git config --global core.editor "code --wait"# 使用 VS Code

七、常见问题与解决方案

1. 解决冲突

  • 场景:多人协作时,同一文件的修改发生冲突。
  • 解决步骤
  1. 手动编辑冲突文件,保留需要的代码。
  2. 添加文件到暂存区并提交:
bash 复制代码
git add <冲突文件>
git commit -m "Resolve conflict"

2. 强制推送

  • 用途:覆盖远程仓库的历史(慎用!)。
  • 命令
bash 复制代码
git push -f origin <分支名>

八、附录:常用命令速查表

命令 用途
git init 初始化仓库
git status 查看状态
git add 添加文件到暂存区
git commit 提交更改
git branch 查看分支
git checkout 切换分支
git merge 合并分支
git push 推送代码
git pull 拉取代码
git log 查看提交历史
git stash 暂存修改
git tag 管理标签
git rebase 重写历史
git cherry-pick 应用特定提交

通过以上命令和案例,可以全面掌握 Git 的使用,适用于日常开发、团队协作和版本管理。对于更复杂的场景(如子模块、标签管理等),可进一步参考 Git 官方文档或高级教程。

相关推荐
AskHarries2 分钟前
技术人最深的三大痛点:看见的人不多,说出口的人更少
前端·后端·程序员
星尘库2 分钟前
怎么实现js混淆加密 每隔一段时间 会失效 需要重新加密使用
java·服务器·前端
白露与泡影3 分钟前
Java面试题2025最新、最全、最细(附答案)
java·开发语言
D***y2019 分钟前
SpringCloud篇(配置中心 - Nacos)
java·spring·spring cloud
摇滚侠9 分钟前
零基础小白自学Git_Github教程,Git 与 GitHub 的历史起源,笔记05
笔记·git·github
m***98211 分钟前
Redis6.2.6下载和安装
android·前端·后端
weixin_5150397913 分钟前
互联网大厂面试:程序员二狗的搞笑经历
java·学习·面试·程序员·互联网·技术·故事
涡能增压发动积18 分钟前
windows 系统安装 python 的最好方式也许就是不安装
后端
q***D44324 分钟前
Navicat 连接 SQL Server 详尽指南
java