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

相关推荐
追逐时光者2 小时前
一个致力于为 C# 程序员提供更佳的编码体验和效率的 Visual Studio 扩展插件
后端·c#·visual studio
韩师学子--小倪3 小时前
fastjson与gson的toString差异
java·json
Drawing stars3 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
nbsaas-boot3 小时前
SQL Server 存储过程开发规范(公司内部模板)
java·服务器·数据库
行百里er4 小时前
用 ThreadLocal + Deque 打造一个“线程专属的调用栈” —— Spring Insight 的上下文管理术
java·后端·架构
玄〤4 小时前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot
J_liaty4 小时前
Spring Boot拦截器与过滤器深度解析
java·spring boot·后端·interceptor·filter
王老邪4 小时前
Windows下利用PowerShell实现Git自动推送
windows·git
短剑重铸之日4 小时前
《7天学会Redis》Day2 - 深入Redis数据结构与底层实现
数据结构·数据库·redis·后端
极客先躯5 小时前
如何自动提取Git指定时间段的修改文件?Win/Linux双平台解决方案
linux·git·elasticsearch