git知识点总结

Git 核心知识点总结

一、Git 基础概念

  1. 版本控制系统 (VCS):Git 是分布式版本控制系统,相比集中式(如 SVN),每个开发者本地都有完整的代码仓库,无需依赖中央服务器即可提交、回滚等操作。
  2. 三大区域
    • 工作区 (Working Directory):本地写代码的目录,直观可见的文件目录。
    • 暂存区 (Staging Area/Index):临时存放待提交的修改,相当于 "提交缓冲区"。
    • 版本库 (Repository):Git 真正存储版本数据的地方,.git 目录就是版本库核心。
  3. 核心对象
    • 提交 (Commit):版本的快照,每个提交有唯一的哈希值(SHA-1),包含作者、时间、修改内容、父提交等信息。
    • 分支 (Branch):代码开发的并行线,默认主分支是 main(旧版为 master),可基于主分支创建功能分支开发,完成后合并。
    • 标签 (Tag):标记重要的版本节点(如 v1.0、v2.1),常用于发布版本。

二、Git 核心操作(高频)

1. 仓库初始化与克隆

bash

复制代码
# 本地初始化新仓库
git init

# 克隆远程仓库到本地
git clone <远程仓库地址>  # 例:git clone https://github.com/xxx/xxx.git
2. 基础提交流程

bash

复制代码
# 查看文件状态(工作区/暂存区差异)
git status

# 将工作区文件添加到暂存区
git add <文件名>          # 添加指定文件
git add .                # 添加所有修改/新增文件
git add -u               # 仅添加已追踪文件的修改/删除(不包含新增)

# 将暂存区内容提交到版本库
git commit -m "提交说明"  # -m 后跟简洁的提交信息(必填)
git commit -am "提交说明" # 跳过暂存区,直接提交已追踪文件的修改

# 查看提交历史
git log                  # 完整提交记录
git log --oneline        # 简洁版(哈希值前7位+提交信息)
git log --graph          # 图形化展示分支合并历史
3. 分支操作

bash

复制代码
# 查看分支
git branch               # 列出本地分支(* 标记当前分支)
git branch -r            # 列出远程分支
git branch -a            # 列出所有分支(本地+远程)

# 创建分支
git branch <分支名>       # 仅创建,不切换
git checkout -b <分支名>  # 创建并切换到新分支(常用)
git switch -c <分支名>    # Git 2.23+ 替代 checkout 的新命令

# 切换分支
git checkout <分支名>
git switch <分支名>       # 新版推荐

# 合并分支(先切到目标分支,再合并)
git merge <待合并分支名>  # 例:在main分支执行 git merge feature/login

# 删除分支
git branch -d <分支名>    # 删除已合并的本地分支
git branch -D <分支名>    # 强制删除未合并的本地分支
4. 远程仓库操作

bash

复制代码
# 关联远程仓库(首次)
git remote add origin <远程仓库地址>

# 查看远程仓库信息
git remote -v

# 拉取远程分支代码(合并到本地)
git pull origin <分支名>  # 例:git pull origin main

# 推送本地分支到远程
git push origin <分支名>  # 例:git push origin feature/pay
git push -u origin <分支名> # 首次推送,关联本地与远程分支(后续可直接 git push)

# 删除远程分支
git push origin --delete <分支名>
5. 撤销 / 回滚操作

bash

复制代码
# 撤销工作区修改(恢复到暂存区/版本库状态)
git checkout -- <文件名>

# 撤销暂存区修改(回到工作区)
git reset HEAD <文件名>

# 回滚到指定提交(保留工作区修改,仅撤销提交记录)
git reset --soft <提交哈希值>

# 彻底回滚到指定提交(工作区、暂存区都恢复到该版本)
git reset --hard <提交哈希值>

# 撤销最近一次提交(保留修改,回到暂存区)
git commit --amend        # 可修改上次提交信息,或补充暂存区文件

三、Git 进阶技巧

  1. 忽略文件(.gitignore)

    • 创建 .gitignore 文件,写入无需追踪的文件 / 目录(如 node_modules/*.log.env)。
    • 注意:.gitignore 只对未追踪的文件生效,若文件已提交,需先删除追踪再生效:git rm --cached <文件名>
  2. 暂存工作区(stash)

    bash

    复制代码
    git stash               # 暂存当前工作区修改
    git stash list          # 查看暂存列表
    git stash apply         # 应用最近一次暂存(不删除暂存记录)
    git stash pop           # 应用并删除最近一次暂存
    git stash drop          # 删除指定暂存
  3. 变基(rebase)

    • 替代 merge 的分支合并方式,让提交历史更线性:git rebase <目标分支>(慎用,不修改已推送到远程的提交)。
  4. 标签管理

    bash

    复制代码
    git tag v1.0            # 创建轻量标签
    git tag -a v1.0 -m "版本1.0发布"  # 创建附注标签(推荐)
    git push origin v1.0    # 推送标签到远程

总结

  1. 核心逻辑:Git 核心是 "工作区→暂存区→版本库" 的提交流程,分布式特性让本地可独立完成大部分版本操作。
  2. 高频操作add/commit(提交)、branch/checkout/merge(分支)、pull/push(远程同步)是日常开发最常用的命令。
  3. 关键注意 :分支操作前先 git status 确认工作区状态,避免未提交的修改被覆盖;远程分支合并优先用 mergerebase 仅用于本地分支整理。

掌握这些核心知识点,就能覆盖日常开发中 90% 以上的 Git 使用场景,进阶技巧可在实际需求中逐步学习。

相关推荐
Greg_Zhong5 小时前
Git建立本地与远程仓库的连接,简洁版
git·本地与远程连接
小猪咪piggy6 小时前
【工具】Git 和小乌龟安装与使用
git
二进制coder7 小时前
Git 实操:已Push的Commit能否重新Push?答案与规范全解析
git
solly79375567010 小时前
IDEA下载git项目和配置tomcat
git·tomcat·intellij-idea
拐爷11 小时前
Vibe‑coding九阳神功之夯:Git 基础操作,AI 时代的刹车系统(附速查表)
人工智能·git
嘿吖嘿嘿~12 小时前
怎么解决git@github.com出现Permission denied (publickey)的问题
git·github
岱宗夫up1 天前
Git不是工具,是协作哲学
git
生活很暖很治愈1 天前
Linux基础开发工具
linux·服务器·git·vim
极地星光1 天前
如何使用 Git 实现 revert
git