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. 从简单开始 :先掌握 init、add、commit、push、pull

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

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

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

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

常见面试问题

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

reset和revert有什么区别

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

stash暂存,stash pop变出来

相关推荐
2601_962780911 小时前
2027校招准备:统计学专业如何用数据能力应聘企业经营管理管培生
大数据
宵时待雨2 小时前
GIT版本管理2:远程操作与多人协作
git
阿明副业观察2 小时前
AI视频生成技术全解:生成方法、操作流程与选型指南
大数据·人工智能·ai作画·aigc·ai写作
鬼手点金2 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
Leo.yuan3 小时前
FineBI AI原生版:Agent主动规划分析路径,让数据成为企业经营决策的顾问
大数据
VibeCoding工程之道4 小时前
第八章 最终格局:不是 AI 淘汰人,是「依赖 AI 的人」淘汰自己
大数据·人工智能·ai焦虑·ai思考·ai反噬
大大大大晴天4 小时前
每天认识一个组件:Apache Kafka
大数据
2501_933670794 小时前
2027秋招岗位能力分组:数据科学与大数据技术专业如何组织技能与项目
大数据
野生数据人5 小时前
日志平台每日巡检我压成了一条命令链:从 SHOW BACKENDS 到扩缩容的完整步骤
大数据·数据库
liliangcsdn6 小时前
如何用DrissionPage进行网页自动化
大数据·自动化