news 2026/6/10 18:48:14

git从入门到熟练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
git从入门到熟练

一、Git基础概念

1、什么是Git?

Git是一个分布式版本控制系统,用于跟踪文件的变化,协调多人协作开发,并能够恢复到之前的版本。

2、为什么使用版本控制?

• 追踪历史变更,了解谁在何时做了什么修改
• 可以恢复到之前的版本,轻松撤销错误
• 多人协作时避免文件冲突
• 实验性功能可以在独立分支开发,不影响主代码

3、Git核心概念

区域 / 对象作用
工作区(Workspace)本地写代码的文件夹,即实际操作的文件目录。
暂存区(Index/Stage)临时存放待提交的修改,是工作区和版本库的 “中转站”。
版本库(Repository)Git 管理的核心目录(.git文件夹),存储所有版本记录、分支等。
提交(Commit)把暂存区的修改保存到版本库,生成唯一的版本 ID(哈希值),是版本管理的最小单位。
分支(Branch)独立的开发线,默认主分支为main(旧版为master),可创建分支开发,再合并。
远程仓库(Remote)托管在网络上的 Git 仓库(如 GitHub、Gitee、GitLab),用于多人协作和代码备份。

4、Git工作流程

a.在工作区修改文件

b.将修改添加到暂存区git add <file>

c.将暂存区内容提交到本地仓库git commit -m "描述信息"

d.推送至远程代码仓库

5、基本术语

  • 提交(Commit): 保存当前暂存区的变更到仓库
  • 分支(Branch): 独立的开发线路,可以从主分支分离出来进行功能开发
  • 合并(Merge): 将一个分支的更改整合到另一个分支
  • 远程仓库(Remote): 托管在网络上的共享仓库,如GitHub、GitLab等

二、git安装

1、安装

Linux系统:

ubuntu系统 apt install git -y centos系统 yum install git -y

windows系统:

请参考此文档进行安装

https://blog.csdn.net/deltadev/article/details/148623341?fromshare=blogdetail&sharetype=blogdetail&sharerId=148623341&sharerefer=PC&sharesource=Z2831631429&sharefrom=from_link

2、验证安装

Linux系统使用git --version进行验证

windows系统使用git --version验证

3、基础必做

Git 需配置用户名和邮箱(关联代码提交记录),用户名邮箱出现在你的所有提交记录中:,执行以下命令(替换为自己的信息):

# 配置全局用户名 git config --global user.name "Your Name" # 配置全局邮箱(建议用GitHub/Gitee/Gitlab注册邮箱) git config --global user.email "your_email@example.com"

使用git config --list查看配置,确认用户名和邮箱正确。

三、本地仓库基础操作(核心)

1. 初始化本地仓库

在需要管理的文件夹下,执行:

打开git bash # 进入目标文件夹(替换为自己的路径) cd /Users/xxx # 初始化Git仓库(生成.git隐藏文件夹) git init

2. 文件状态查看

Git 中文件有 3 种状态:未跟踪(Untracked)已暂存(Staged)已提交(Committed),通过以下命令查看:

git status # 详细查看文件状态 git status -s # 简化输出(推荐,更清晰)

3. 暂存文件(工作区 → 暂存区)

# 暂存指定文件 git add filename.txt # 暂存所有修改/新增文件 git add . # 暂存指定目录 git add src/

4. 提交修改(暂存区 → 版本库)

# 基础提交(需输入提交信息) git commit # 直接输入提交信息(推荐) git commit -m "feat: 新增登录功能" # 跳过暂存区,直接提交已跟踪文件的修改(慎用) git commit -am "fix: 修复登录按钮样式问题" # 修正最后一次提交(信息写错/漏加文件) git commit --amend # 会进入编辑器修改信息 git commit --amend -m "新的提交信息" # 直接修改信息

提交信息规范(推荐 Angular 规范):

  • feat: 新功能
  • fix: 修复 bug
  • docs: 文档修改
  • style: 代码格式(不影响逻辑)
  • refactor: 重构(既不是新功能也不是修 bug)
  • test: 测试相关
  • chore: 构建 / 工具配置等杂项

5. 版本回溯与查看

(1)查看提交历史
git log # 完整日志 git log --oneline # 简化日志(一行显示,带简短哈希) git log --graph # 图形化显示分支关系 git log -n 5 # 只看最近5次提交 git log --author="Your Name" # 查看指定作者的提交
(2)回溯到指定版本
# 查看所有提交的哈希值 git log --oneline # 回溯到指定版本(保留修改,可恢复) git reset --soft 哈希值 # 暂存区保留修改 git reset --mixed 哈希值 # 工作区保留修改,暂存区清空(默认) git reset --hard 哈希值 # 彻底回滚,工作区/暂存区都清空(慎用)

⚠️ 注意:git reset --hard会丢失未提交的修改,若误操作可通过git reflog恢复:

git reflog # 查看所有操作记录(包括reset) git reset --hard 操作记录中的哈希值 # 恢复到reset前的版本

四、分支操作(多人协作核心)了解即可

1. 分支基础命令

# 查看所有分支(* 表示当前分支) git branch # 创建分支 git branch dev # 创建dev分支(基于当前分支) # 切换分支 git checkout dev # 创建并切换分支(推荐) git checkout -b feature/login # 创建feature/login分支并切换 # 重命名分支 git branch -m old-name new-name # 删除分支(需先切换到其他分支) git branch -d dev # 删除已合并的分支 git branch -D dev # 强制删除未合并的分支(慎用)

2. 分支合并

(1)合并到主分支(如 dev 合并到 main)
# 1. 切换到主分支 git checkout main # 2. 拉取最新的主分支代码(多人协作时必做) git pull origin main # 3. 合并dev分支到当前分支 git merge dev
(2)解决合并冲突

当两个分支修改了同一文件的同一部分,合并时会出现冲突,Git 会标记冲突区域:

plaintext

<<<<<<< HEAD # 当前分支的内容 main分支的代码 ======= dev分支的代码 >>>>>>> dev # 待合并分支的内容

解决步骤:

  1. 打开冲突文件,手动修改冲突内容(删除标记,保留正确代码);
  2. 暂存修改后的文件:git add 冲突文件
  3. 完成合并:git commit -m "merge: 合并dev分支,解决登录逻辑冲突"

3. 变基(Rebase):更整洁的合并方式

变基可以让提交记录更线性,替代merge(适合个人开发分支合并到主分支前):

# 切换到开发分支 git checkout feature/login # 基于main分支变基(将当前分支的提交重新应用到main最新版本) git rebase main # 若出现冲突,解决后执行: git add . git rebase --continue # 继续变基 # 放弃变基 git rebase --abort

⚠️ 注意:不要对已推送到远程的公共分支执行变基(会打乱他人的提交记录)。

五、远程仓库操作(多人协作)

1. 关联远程仓库

(1)方式 1:本地仓库推送到远程(先有本地,后有远程)
  1. 在 GitHub/Gitee/GitLab 创建新仓库(不要勾选 “Initialize this repository with a README”);
  2. 本地关联远程仓库:
# 关联远程仓库(origin是远程仓库的别名,可自定义) git remote add origin https://github.com/你的用户名/仓库名.git # 查看已关联的远程仓库 git remote -v
(2)方式 2:克隆远程仓库到本地(先有远程,后有本地)
git clone https://github.com/你的用户名/仓库名.git # HTTPS方式 git clone git@github.com:你的用户名/仓库名.git # SSH方式(推荐,免密码)

2. SSH 配置(免密码推送)

HTTPS 方式每次推送都要输密码,推荐配置 SSH:

1、生成 SSH 密钥:

ssh-keygen -t rsa -C "your_email@example.com" # 一路回车即可

2、查看公钥

  1. Windows:cat ~/.ssh/id_rsa.pub
  2. Mac/Linux:cat ~/.ssh/id_rsa.pub

3、复制公钥,粘贴到 GitHub/Gitee /Gitlab的「设置 → SSH 密钥」中。

3. 推送代码到远程

# 第一次推送(需指定分支) git push -u origin main # -u 关联本地main和远程main,后续可直接git push # 后续推送 git push # 推送指定分支 git push origin dev

4. 拉取远程代码

# 拉取远程最新代码并合并(等同于 git fetch + git merge) git pull origin main # 只拉取不合并(先查看差异,再手动合并) git fetch origin main git merge origin/main # 拉取并变基(保持提交记录整洁) git pull --rebase origin main

5. 远程分支操作

# 删除远程分支 git push origin --delete dev # 更新远程分支列表(同步远程已删除的分支) git remote prune origin

Git命令速查表

基础操作

命令说明示例
git init初始化Git仓库git init
git add <file>将文件添加到暂存区git add index.html
git add .添加所有修改文件到暂存区git add .
git commit -m "<message>"提交暂存区文件到仓库git commit -m "添加首页"
git status查看工作区状态git status
git log查看提交历史git log --oneline

分支操作

命令说明示例
git branch列出所有本地分支git branch
git branch <name>创建新分支git branch feature/login
git checkout <branch>切换分支git checkout feature/login
git switch <branch>切换分支(Git 2.23+)git switch feature/login
git checkout -b <name>创建并切换分支git checkout -b feature/payment
git switch -c <name>创建并切换分支(Git 2.23+)git switch -c feature/payment
git merge <branch>合并指定分支到当前分支git merge feature/login
git branch -d <branch>删除本地分支git branch -d feature/login

远程仓库

命令说明示例
git remote -v查看远程仓库信息git remote -v
git remote add <name> <url>添加远程仓库git remote add origin https://github.com/user/repo.git
git push <remote> <branch>推送分支到远程git push origin main
git push -u <remote> <branch>设置上游分支并推送git push -u origin main
git pull <remote> <branch>拉取并合并远程分支git pull origin main
git clone <url>克隆远程仓库git clone https://github.com/user/repo.git

撤销操作

命令说明示例
git checkout -- <file>撤销工作区修改git checkout -- index.html
git reset HEAD <file>撤销暂存区修改git reset HEAD index.html
git commit --amend修改最近一次提交git commit --amend -m "修正提交信息"
git reset --hard <commit>回退到指定提交git reset --hard a1b2c3d

常用配置

命令说明示例
git config --global user.name "<name>"设置全局用户名git config --global user.name "John Doe"
git config --global user.email "<email>"设置全局邮箱git config --global user.email "john@example.com"
git config --global core.editor "<editor>"设置默认编辑器git config --global core.editor "code --wait"
git config --list查看所有配置git config --list
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 8:12:43

计算机毕业设计springboot基于微信小程序的菜谱查询点评系统设计与开发 基于Spring Boot框架的微信小程序菜谱管理系统设计与实现 微信小程序上的菜谱查询与评价系统开发

计算机毕业设计springboot基于微信小程序的菜谱查询点评系统设计与开发hf1kw9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网的普及和移动设备的广泛使用&#xff0c…

作者头像 李华
网站建设 2026/6/10 10:25:16

【收藏级】一文吃透基础RAG全环节优化方案,让大模型应用更高效

如今&#xff0c;大规模语言模型&#xff08;LLMs&#xff09;已深度渗透到研发、办公、服务等各类场景&#xff0c;凭借其强大的自然语言理解与生成能力&#xff0c;重新定义了我们获取和处理信息的方式。但大模型并非万能的"银弹"&#xff0c;实际应用中总会遇到各…

作者头像 李华
网站建设 2026/6/10 10:24:15

收藏!为什么程序员必须懂大模型?2025入门必备指南

2025年&#xff0c;AI大模型早已告别“概念炒作”的浮躁期&#xff0c;全面迈入“产业落地”的深水区。AI Agent智能体、轻量化部署方案、多模态融合应用成为当下最热门的技术风口&#xff0c;深刻重构着软件开发的工作模式。对于程序员而言&#xff0c;掌握大模型已不是“加分…

作者头像 李华
网站建设 2026/6/10 10:27:27

从服务器机房到 IDC 集群:网口温湿度变送器的全场景适配监控

网口温湿度变送器&#xff1a;机房与数据中心的温湿度监控核心解决方案一、机房 / 数据中心温湿度监控的核心诉求&#xff1a;稳定是第一要务机房、服务器机房及数据中心&#xff08;IDC&#xff09;是信息技术设备运行的核心载体&#xff0c;其环境温湿度直接决定设备寿命与运…

作者头像 李华
网站建设 2026/6/10 10:22:57

安达发|告别“老师傅”,拥抱APS软件 :薄膜行业新竞争力公式

在日新月异的包装、农业、电子及医疗等领域&#xff0c;塑料薄膜作为一种基础且关键的材料&#xff0c;其市场需求正朝着多品种、小批量、快交期、高质量的方向急速演进。然而&#xff0c;置身于这一高速赛道中的薄膜生产企业&#xff0c;却普遍面临着一个核心痛点&#xff1a;…

作者头像 李华
网站建设 2026/6/10 10:25:29

GitHub热门项目推荐:PyTorch-CUDA-v2.7开箱即用深度学习环境

GitHub热门项目推荐&#xff1a;PyTorch-CUDA-v2.7开箱即用深度学习环境 在深度学习项目开发中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是环境搭建——明明代码写好了&#xff0c;却卡在“CUDA not available”或“版本不兼容”的报错上。你是否也经历过这…

作者头像 李华