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变出来

相关推荐
说私域5 小时前
基于AI智能名片链动2+1模式服务预约商城系统的社群运营与顾客二次消费吸引策略研究
大数据·人工智能·小程序·开源·流量运营
一允6 小时前
Git学习记录
git·学习
程序员果子7 小时前
GraphRAG:让大模型在知识图谱中精准导航
人工智能·git·语言模型·aigc·知识图谱
塔能物联运维9 小时前
隧道照明“智能进化”:PLC 通信 + AI 调光守护夜间通行生命线
大数据·人工智能
highly20099 小时前
Gitflow
大数据·elasticsearch·搜索引擎
humors22110 小时前
韩秀云老师谈买黄金
大数据·程序人生
重生之绝世牛码10 小时前
Linux软件安装 —— SSH免密登录
大数据·linux·运维·ssh·软件安装·免密登录
StarChainTech10 小时前
无人机租赁平台:开启智能租赁新时代
大数据·人工智能·微信小程序·小程序·无人机·软件需求
Hello.Reader10 小时前
Flink DynamoDB Connector 用 Streams 做 CDC,用 BatchWriteItem 高吞吐写回
大数据·python·flink