Git 命令大全:从基础到高级操作
Git 是一个分布式版本控制系统,广泛用于代码管理、协作开发和版本控制。以下是 Git 的所有核心命令及其详细说明,涵盖 基础操作、分支管理、远程操作、撤销修改、高级操作 等场景。
一、基础操作
1. 初始化仓库
- 用途:创建一个新的 Git 仓库。
- 命令:
git init
- 案例:
# 在项目目录下初始化 Git 仓库
cd my-project
git init
2. 查看仓库状态
- 用途:查看当前工作区、暂存区和提交历史的状态。
- 命令:
git status
- 案例:
# 查看哪些文件被修改但未提交
git status
3. 添加文件到暂存区
- 用途:将工作区的文件添加到暂存区(Staging Area)。
- 命令:
git add <文件名># 添加单个文件
git add .# 添加所有文件
- 案例:
# 添加 README.md 到暂存区
git add README.md
4. 提交更改
- 用途:将暂存区的更改提交到本地仓库。
- 命令:
git commit -m "提交信息"
- 案例:
# 提交 README.md 的修改
git commit -m "Update README with project description"
5. 查看提交历史
- 用途:查看提交记录。
- 命令:
git log
- 案例:
# 查看最近 3 条提交记录
git log -3
二、分支管理
1. 查看分支
- 用途:列出当前仓库的所有分支。
- 命令:
git branch
- 案例:
# 查看本地分支
git branch
2. 创建分支
- 用途:创建一个新分支。
- 命令:
git branch <分支名>
- 案例:
# 创建名为 feature-login 的分支
git branch feature-login
3. 切换分支
- 用途:切换到指定分支。
- 命令:
git checkout <分支名>
- 案例:
# 切换到 feature-login 分支
git checkout feature-login
4. 合并分支
- 用途:将指定分支的更改合并到当前分支。
- 命令:
git merge <分支名>
- 案例:
# 切换到 main 分支并合并 feature-login 的更改
git checkout main
git merge feature-login
5. 删除分支
- 用途:删除本地或远程分支。
- 命令:
git branch -d <分支名># 删除本地分支
git push origin --delete <分支名># 删除远程分支
- 案例:
# 删除本地的 feature-login 分支
git branch -d feature-login# 删除远程的 feature-login 分支
git push origin --delete feature-login
三、远程操作
1. 关联远程仓库
- 用途:将本地仓库与远程仓库(如 GitHub)关联。
- 命令:
git remote add origin <远程仓库URL>
- 案例:
# 关联 GitHub 仓库
git remote add origin https://github.com/username/repo.git
2. 推送代码到远程仓库
- 用途:将本地提交推送到远程仓库。
- 命令:
git push -u origin <分支名>
- 案例:
# 首次推送 main 分支
git push -u origin main
3. 拉取远程仓库代码
- 用途:从远程仓库拉取最新代码。
- 命令:
git pull origin <分支名>
- 案例:
# 拉取 main 分支的最新代码
git pull origin main
4. 查看远程仓库信息
- 用途:查看当前关联的远程仓库。
- 命令:
git remote -v
- 案例:
# 查看远程仓库地址
git remote -v
四、撤销修改
1. 撤销工作区修改
- 用途:丢弃工作区的修改。
- 命令:
git restore <文件名>
- 案例:
# 撤销 README.md 的修改
git restore README.md
2. 撤销暂存区修改
- 用途:将文件从暂存区移回工作区。
- 命令:
git restore --staged <文件名>
- 案例:
# 撤销 README.md 的暂存
git restore --staged README.md
3. 撤销提交
- 用途:撤销最近的一次提交(保留更改)。
- 命令:
git reset --soft HEAD~1
- 案例:
# 撤销最近一次提交,但保留更改
git reset --soft HEAD~1
4. 撤销提交并删除更改
- 用途:撤销提交并丢弃更改。
- 命令:
git reset --hard HEAD~1
五、高级操作
1. 重写历史(rebase)
- 用途:将当前分支的提交历史合并到另一个分支上。
- 命令:
git rebase <分支名>
- 案例:
# 将 feature-login 的提交合并到 main 分支上
git checkout feature-login
git rebase main
2. 应用特定提交(cherry-pick)
- 用途:将某个提交应用到当前分支。
- 命令:
git cherry-pick <提交哈希>
- 案例:
# 应用提交 abc1234
git cherry-pick abc1234
3. 暂存修改(stash)
- 用途:临时保存未提交的修改。
- 命令:
git stash
git stash apply
- 案例:
# 暂存修改
git stash# 切换分支后恢复修改
git stash apply
4. 标签管理
- 用途:为特定提交打标签(如版本号)。
- 命令:
git tag <标签名># 创建标签
git push origin <标签名># 推送标签到远程
- 案例:
# 为最新提交打标签 v1.0
git tag v1.0# 推送标签到远程仓库
git push origin v1.0
5. 子模块管理
- 用途:将外部仓库作为子模块嵌入当前项目。
- 命令:
git submodule add <仓库URL># 添加子模块
git submodule update --init# 初始化子模块
六、配置与用户管理
1. 配置用户名和邮箱
- 用途:设置提交者身份信息。
- 命令:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
2. 查看配置
- 用途:查看当前 Git 配置。
- 命令:
git config --list
3. 设置默认编辑器
- 用途:修改 Git 使用的编辑器(如 Vim、Nano)。
- 命令:
git config --global core.editor "code --wait"# 使用 VS Code
七、常见问题与解决方案
1. 解决冲突
- 场景:多人协作时,同一文件的修改发生冲突。
- 解决步骤:
- 手动编辑冲突文件,保留需要的代码。
- 添加文件到暂存区并提交:
git add <冲突文件>
git commit -m "Resolve conflict"
2. 强制推送
- 用途:覆盖远程仓库的历史(慎用!)。
- 命令:
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 官方文档或高级教程。
