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

相关推荐
sun0077001 小时前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
财经三剑客3 小时前
AI元年,春节出行安全有了更好的答案
大数据·人工智能·安全
岁岁种桃花儿3 小时前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
TOPGUS4 小时前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
胖虎14 小时前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
2501_933670795 小时前
2026 高职大数据与会计专业零基础能考的证书有哪些?
大数据
ClouderaHadoop5 小时前
CDH集群机房搬迁方案
大数据·hadoop·cloudera·cdh
TTBIGDATA5 小时前
【Atlas】Ambari 中 开启 Kerberos + Ranger 后 Atlas Hook 无权限访问 Kafka Topic:ATLAS_HOOK
大数据·kafka·ambari·linq·ranger·knox·bigtop
程序员清洒5 小时前
CANN模型部署:从云端到端侧的全场景推理优化实战
大数据·人工智能
lili-felicity6 小时前
CANN多设备协同推理:从单机到集群的扩展之道
大数据·人工智能