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 官方文档或高级教程。

相关推荐
Lucky小小吴1 小时前
ClamAV扫描速度提升6.5倍:服务器杀毒配置优化实战指南
java·服务器·网络·clamav
handsome_sai6 小时前
【Java 线程池】记录
java
大学生资源网7 小时前
基于springboot的唐史文化管理系统的设计与实现源码(java毕业设计源码+文档)
java·spring boot·课程设计
掘金码甲哥7 小时前
🚀糟糕,我实现的k8s informer好像是依托答辩
后端
guslegend7 小时前
SpringSecurity源码剖析
java
GoGeekBaird8 小时前
Andrej Karpathy:2025年大模型发展总结
后端·github
uzong8 小时前
听一听技术面试官的心路历程:他们也会有瓶颈,也会表现不如人意
后端
Jimmy8 小时前
年终总结 - 2025 故事集
前端·后端·程序员
roman_日积跬步-终至千里8 小时前
【人工智能导论】02-搜索-高级搜索策略探索篇:从约束满足到博弈搜索
java·前端·人工智能
大学生资源网8 小时前
java毕业设计之儿童福利院管理系统的设计与实现(源码+)
java·开发语言·spring boot·mysql·毕业设计·源码·课程设计