Git 最全面的用法解析

Git 是一个分布式版本控制系统,广泛用于软件开发中的代码管理和协作。以下是 Git 的常用用法和一些高级用法,帮助你从入门到进阶。

一、Git 常用用法

1. 初始化仓库


git init                    # 初始化一个本地仓库
git clone <url>             # 克隆远程仓库到本地

2. 配置用户信息


git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

3. 查看状态


git status                  # 查看工作区和暂存区的状态
git log                     # 查看提交历史
git log --oneline           # 简洁查看提交历史
git log --graph             # 图形化显示分支合并历史

4. 添加和提交


git add <file>                     	 # 将文件添加到暂存区
git add .                            # 添加所有修改和新增的文件
git commit -m "commit message"       # 提交到本地仓库

5. 推送与拉取


git push origin main        # 推送本地提交到远程仓库的 main 分支
git pull origin main        # 从远程拉取最新代码并合并
git fetch                   # 获取远程更新,但不自动合并

6. 分支操作


git branch                  # 查看本地分支
git branch <name>           # 创建新分支
git checkout <name>         # 切换到指定分支
git switch <name>           # 切换分支(Git 2.23+)
git checkout -b <name>      # 创建并切换到新分支
git merge <branch>          # 合并指定分支到当前分支
git branch -d <name>        # 删除本地分支

7. 撤销操作


git restore <file>          # 撤销工作区文件的修改(Git 2.23+)
git restore --staged <file> # 将文件从暂存区移出,保留工作区修改
git reset HEAD~1            # 撤销最后一次提交,保留更改在工作区
git reset --hard HEAD~1     # 彻底删除最后一次提交及更改(慎用!)

二、Git 高级用法

1. 重置与变基(Rebase)

适用于整理本地提交历史,不要在公共分支上使用 rebase。


git rebase <branch>         # 将当前分支的提交“变基”到目标分支上,使历史更线性
git rebase -i HEAD~3        # 交互式变基,可编辑、合并或删除最近3次提交


2. 储藏(Stashing)


git stash                   # 临时保存工作区和暂存区的修改
git stash pop               # 恢复最近一次储藏的内容并删除
git stash apply             # 恢复储藏内容但不删除
git stash list              # 查看所有储藏
git stash drop              # 删除指定储藏

3. 标签管理


git tag v1.0                # 创建轻量标签
git tag -a v1.0 -m "release 1.0"  # 创建带注释的标签
git push origin v1.0        # 推送标签到远程
git push origin --tags      # 推送所有标签

4. 检出特定版本


git checkout <commit-hash>  # 查看某个历史提交的状态(进入“分离头指针”状态)
git checkout -b <new-branch> <commit-hash>  # 基于某次提交创建新分支

5. 查看差异


git diff                    # 查看工作区与暂存区的差异
git diff --staged           # 查看暂存区与上次提交的差异
git diff <commit1> <commit2> -- <file>  # 比较两个提交之间的某个文件

6. 修复提交(Amend)


git commit --amend          # 修改最后一次提交(可修改信息或添加遗漏文件)
注意:会改变提交哈希,不要用于已推送的提交。

7. 远程分支管理


git remote -v               # 查看远程仓库信息
git remote add <name> <url> # 添加新的远程仓库
git push origin <branch>    # 推送分支到远程
git push origin --delete <branch>  # 删除远程分支
git fetch --prune           # 清理本地已不存在的远程分支引用

8. 子模块(Submodule)


git submodule add <url> <path>   # 添加子模块
git submodule update --init --recursive  # 克隆项目后初始化子模块

9. 高级日志查询


git log --author="John"     # 查看某人提交的日志
git log --grep="fix"        # 搜索提交信息包含 "fix" 的提交
git log --since="2 weeks ago" --until="1 week ago"
git log -p <file>           # 查看某文件的详细修改历史
git blame <file>            # 查看文件每行的最后修改者和提交

10. 二分查找(Bisect)

用于查找引入 bug 的提交:


git bisect start
git bisect bad              # 当前版本有 bug
git bisect good v1.0        # 指定一个已知良好的版本

# Git 会自动二分检出中间版本,你测试后标记 good/bad
git bisect good|bad

# 找到问题提交后退出
git bisect reset

11. Reflog(引用日志)

非常有用,用于恢复“丢失”的提交。


git reflog                  # 查看 HEAD 的操作历史(包括 reset、checkout 等)
git reset <HEAD@{n}>        # 恢复误删的提交或分支

三、最佳实践建议

  • 小步提交:每次提交只做一件事,提交信息清晰。
  • 频繁拉取:避免长时间不拉取导致合并冲突。
  • 使用分支:功能开发使用特性分支(feature branch),避免直接在 main 上开发。
  • 代码审查:使用 Pull Request / Merge Request 进行代码审查。
  • .gitignore:合理配置忽略文件(如日志、编译产物)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易 士心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值