跳转到正文
YGJoon 技术博客

git 基础教程

发布于:
·1.1k 字 · 约 3 分钟·作者:
从 git init 建仓讲起,覆盖提交推送拉取日常命令、分支的创建切换与合并、打标签、stash 暂存三类高频操作,每条命令配中文作用说明,照着敲就能上手。
git 基础教程文章封面
目录

介绍

Git是一个开源的分布式版本控制系统,用于高效管理任何规模的项目。以下介绍日常高频命令,覆盖从建仓到推送的完整流程。

常用命令 git

## git init  初始化仓库git仓库
git init
## git add . 添加文件到暂存区
git add .
## git add filePath
git add file/index.html
## git status 查看仓库当前的状态,显示有变更的文件。
git status
## git reset 撤销暂存(默认 --mixed:保留工作区修改,只清空暂存区)。加 --hard 会丢弃工作区修改,谨慎操作
git reset
## git reset --hard <commit> 强制回退到指定提交,丢弃之后的所有修改(已推送的分支慎用)
## git log  查看历史提交记录
git log
## git push 上传远程代码并合并
git push
## git pull 下载远程代码并合并
git pull

分支branch

分支(branch)一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,下面介绍分支的常用操作

## git branch 列出你在本地的分支
git branch
## git branch branchName 创建分支
git branch develop
## git checkout branchName 切换分支
git checkout develop
## git push origin branchName 推送本地分支到远程
git push origin develop
## git branch -d branchName 删除分支
git branch -d develop
## git merge branchName 将改分支代码合并到当前所在分支
git merge  develop

标签 tag

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。

## git tag 列出已有的标签
git tag
## git show tagName 查看标签提交信息
git show v1.0.0
## git tag -a tagName 提交版本号 -m 附注信息  创建标签
git tag -a v1.0.0 -m "正式版本1.0.0"
## git tag -d tagName 删除标签
git tag -d v1.0.0
## git push origin tagName 将指定的标签上传到远程仓库
git push origin v1.0.0
## git push origin --tags 将所有不在远程仓库中的标签上传到远程仓库
git push origin --tags
## git branch newBranchName tagName 根据标签创建分支
git branch develop_01 v1.0.0

暂存 stash

当你在一个分支上进行开发,工作还没完成,但需要切换到其他分支时,可以用 git stash 暂时保存当前工作进度。 当你需要拉取远程仓库的代码,但本地有未提交的修改时,可以先 stash 当前修改,完成拉取后再恢复之前的工作。

## 保存当前工作区的所有未提交的修改
git stash
## 列出所有的 stash 记录
git stash list
## 恢复最近的 stash 并删除记录
git stash pop
## 恢复最近的 stash,但不删除记录
git stash apply
## 删除最近的 stash
git stash drop
## 清空所有的 stash 记录
git stash clear

实战案例:我最常用的 5 个命令

上面是手册,下面是我在这个博客仓库里真实高频用的 5 个:

  1. git status --porcelain:脚本里判断工作区脏不脏就靠它(--porcelain 输出稳定可解析,普通 status 是给人看的)。我的自动部署脚本第一件事就是查这个,脏了直接拒绝部署。
  2. git log --oneline -5:看最近提交,一眼定位”我刚才改了啥”。
  3. git diff --stat:推之前扫一眼改了哪些文件,防止把 .obsidian/ 这种垃圾带进去。
  4. git stash:改到一半被叫去修线上 bug,stash 存档,切分支修完再 pop 回来。比 commit -m "wip" 干净。
  5. git revert <commit>:线上出问题回滚用这个,不用 reset。revert 是”新增一个反向提交”,历史是追加的,安全;reset --hard 是”改写历史”,推过的分支用了就是灾难。

新手建议:先把这 5 个练熟,覆盖 90% 日常。rebase、cherry-pick、bisect 等真遇到了再学,现背现忘。


分享这篇文章



相关文章

下一篇
Git版本控制
YGJoon 的头像

YGJoon

记录 Flutter、Web 与原生移动端工程实践。更多背景见关于页,源码与项目见GitHub。