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

相关推荐
CodeCraft Studio2 小时前
国产化Excel处理控件Spire.XLS教程:使用Java将CSV转换为PDF(含格式设置)
java·pdf·excel·spire.xls·文档格式转换·csv转pdf
学历真的很重要2 小时前
LangChain V1.0 Messages 详细指南
开发语言·后端·语言模型·面试·langchain·职场发展·langgraph
申阳2 小时前
Day 7:05. 基于Nuxt开发博客项目-首页开发
前端·后端·程序员
乐悠小码2 小时前
Java设计模式精讲---04原型模式
java·设计模式·原型模式
秋风&萧瑟2 小时前
【C++】智能指针介绍
java·c++·算法
QiZhang | UESTC2 小时前
JAVA算法练习题day67
java·python·学习·算法·leetcode
kobe_OKOK_2 小时前
Git Tag 用法记录
git
毕设源码-朱学姐3 小时前
【开题答辩全过程】以 基于java的民宿管理小程序为例,包含答辩的问题和答案
java·开发语言·小程序
それども3 小时前
List 添加元素提示 UnsupportedOperationException
java