Git 新手入门指南

一、Git 核心概念

1. 版本控制系统 (VCS)

  • 记录文件变化,可随时回退到任意版本

  • 多人协作开发的必备工具

2. 仓库 (Repository)

  • 代码存储的地方,分为:

    • 本地仓库:你电脑上的代码库(自己编辑的地方)

    • 远程仓库:GitHub、Gitee 等平台上的代码库(和其他人员共享/合作)

3. 三大区域

  • 工作区 (Working Directory):实际操作文件的目录

  • 暂存区 (Staging Area):临时存放要提交的文件

  • 版本库 (Repository):存放提交历史

    工作区(Working Directory) → 暂存区(Staging Area) → 仓库(Repository)
    ↓ ↓ ↓
    你修改的文件 git add 添加的文件 git commit 提交的文件

二、Git 安装与配置

1. 安装 Git

  • Windows: 下载 Git for Windows

  • Mac: brew install git

  • Linux: sudo apt-get install git

2. 基本配置

复制代码
# 配置用户名
git config --global user.name "你的名字"

# 配置邮箱
git config --global user.email "你的邮箱"

# 查看配置
git config --list

三、Git 核心命令

1. 仓库初始化与克隆

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

# 克隆现有仓库
git clone https://github.com/用户名/仓库名.git

2. 文件状态与提交

复制代码
# 查看当前状态
git status

# 添加文件到暂存区
git add 文件名            # 添加单个文件
git add .                # 添加所有文件
git add *.js             # 添加所有js文件

# 提交更改
git commit -m "提交说明"

# 一次完成添加和提交(新文件除外)
git commit -am "提交说明"

3. 分支管理

复制代码
# 查看分支
git branch              # 查看本地分支
git branch -a           # 查看所有分支(包括远程)

# 创建分支
git branch 分支名

# 切换分支
git checkout 分支名

# 创建并切换到新分支
git checkout -b 新分支名

# 合并分支
git checkout main       # 先切换到主分支
git merge 分支名        # 合并指定分支到当前分支

# 删除分支
git branch -d 分支名    # 删除本地分支

4. 远程仓库操作

复制代码
# 添加远程仓库
git remote add origin 远程仓库地址

# 推送到远程仓库
git push -u origin 分支名    # 首次推送
git push                     # 后续推送

# 拉取远程更新
git pull origin 分支名

# 获取远程更新(不合并)
git fetch

# 查看远程仓库
git remote -v

5. 查看历史与回退

复制代码
# 查看提交历史
git log
git log --oneline       # 简洁版
git log --graph         # 图形化显示

# 回退到指定版本
git reset --hard 版本号

# 撤销工作区的修改
git checkout -- 文件名

# 撤销暂存区的文件
git reset HEAD 文件名

四、Git 工作流示例

日常开发流程:

不是应该先到master拉取代码,再checkout?

复制代码
# 1. 开始新功能
git checkout -b feature-new-feature

# 2. 开发代码...
# 修改文件

# 3. 查看状态
git status

# 4. 添加更改
git add .

# 5. 提交
git commit -m "添加新功能"

# 6. 推送到远程
git push origin feature-new-feature

# 7. 完成后合并到主分支
git checkout main
git pull origin main
git merge feature-new-feature
git push origin main

五、重要概念详解

1. .gitignore 文件

  • 指定哪些文件/文件夹不被 Git 跟踪

  • 例如:node_modules/.env*.log

2. 冲突解决

  • 当多人修改同一文件时可能出现

  • 需要手动解决冲突后重新提交

3. Stash 暂存

复制代码
# 临时保存未提交的更改
git stash

# 恢复暂存的内容
git stash pop

六、实用技巧

1. 别名设置(简化命令)

复制代码
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

2. 常用组合命令

复制代码
# 简化工作流
git add . && git commit -m "更新"
git pull && git push

七、学习建议

  1. 从简单开始 :先掌握 initaddcommitpushpull

  2. 多用 git status:随时查看当前状态

  3. 分支管理:每个新功能开一个新分支

  4. 提交信息规范:写清晰的提交说明

  5. 勤推送:经常推送到远程仓库备份

常见面试问题

如果两个人同时修改同一行代码怎么办

reset和revert有什么区别

如果A功能还没写完,领导突然要求先写B功能怎么办?

stash暂存,stash pop变出来

相关推荐
vibecoding日记11 小时前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
Elasticsearch19 小时前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康21 小时前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
程序员小崔日记1 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger2 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库2 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体