Git基础玩法简单描述
Git 的三个核心区域
工作区
开发者直接编辑文件的目录,所有未跟踪或修改的文件均处于此区域。文件改动后需通过 git add
转入暂存区。
暂存区
临时存储修改的中间区域,使用 git add
将工作区的变动添加至此。允许分批提交,避免直接提交未完成的更改。
版本库
通过 git commit
将暂存区内容永久保存为版本快照。每个提交生成唯一哈希值,支持回退和历史追踪。
Git 基础操作指令
环境配置
- 版本检查:
git --version
- 设置用户名:
git config --global user.name "YourName"
- 设置邮箱:
git config --global user.email "email@example.com"
仓库管理
- 初始化:
git init
- 添加文件到暂存区:
- 单文件:
git add filename
- 全部文件:
git add .
- 单文件:
- 提交到版本库:
git commit -m "Message"
- 状态检查:
git status -s
A
:新文件首次暂存??
:未跟踪文件红色 M
:已修改未暂存绿色 M
:已修改且暂存
撤销与恢复
- 暂存区覆盖工作区:
git restore file
- 移除暂存区文件:
git rm --cached file
- 查看提交历史:
git log --oneline
- 版本回退:
git reset --hard commit_hash
分支管理
基础操作
- 查看分支:
git branch
(*
标记当前分支) - 创建分支:
git branch new_branch
- 切换分支:
git checkout branch_name
- 合并分支:先切换到目标分支,执行
git merge source_branch
- 删除分支:
git branch -d branch_name
远程仓库协作(以 Gitee 为例)
SSH 密钥配置
生成密钥:ssh-keygen -t ed25519 -C "Gitee SSH Key"
仓库连接与推送
- 首次关联远程仓库:
git remote add origin https://gitee.com/user/repo.git
- 推送代码:
git push -u origin master
- 冲突处理:
- 拉取远程更新:
git pull origin master
- 强制合并:
git pull --rebase origin master
- 拉取远程更新:
克隆与多人协作
- 克隆仓库:
git clone repo_url
- 验证远程连接:
git fetch origin
- 查看远程仓库:
git remote -v
高级场景
忽略文件
创建 .gitignore
文件,列出需忽略的文件/目录模式,如:
*.log
node_modules/
云端与本地冲突解决
当远程仓库更新领先于本地时:
- 拉取最新代码:
git pull origin master
- 解决冲突后重新提交并推送
强制推送警告
避免直接使用 git push --force
,可能导致团队代码丢失
Git 基础知识与操作指南
Git 是一个分布式版本控制系统,用于高效管理代码变更。核心概念包括三个区域:工作区、暂存区和版本库。下面我将基于您提供的信息,结构化解释这些概念和常用指令,确保内容清晰可靠。
一、Git 的三个区域
- 工作区(Working Directory):您实际开发时操作的文件夹,包含所有文件修改。例如,您在本地编辑代码文件。
- 暂存区(Staging Area):保存准备提交的文件变更。添加文件到暂存区后,Git 会跟踪这些改动,但尚未永久保存。
- 版本库(Repository):提交暂存区内容后生成的永久快照。每个提交对应一个唯一版本号,便于历史回溯。
二、常用 Git 指令
以下指令基于标准 Git 语法,我已整理为分类列表。使用命令行时,确保在 Git 仓库目录下执行。
配置与初始化
- 检查 Git 版本:
git -v
- 配置全局用户名称和邮箱(仅需设置一次):
git config --global user.name "您的名称" git config --global user.email "您的邮箱"
- 初始化新仓库:
git init
- 检查 Git 版本:
文件管理
- 添加文件到暂存区:
- 添加指定文件:
git add 文件名
- 添加所有修改的文件:
git add .
- 添加指定文件:
- 提交文件到版本库:
git commit -m "注释内容"
- 查看文件状态(
-s
参数简化输出):git status -s
- 状态符号含义:
A
:新文件,已添加到暂存区。??
:未添加到暂存区。- 红色
M
:文件已修改,但未提交到暂存区。 - 绿色
M
:文件已修改,且已提交到暂存区。
- 状态符号含义:
- 恢复工作区文件(用暂存区覆盖工作区):
git restore 目标文件
- 移除暂存区文件(保留工作区文件):
git rm --cached 目标文件
- 添加文件到暂存区:
历史与回退
- 查看提交历史(简化输出):
git log --oneline
- 回退到指定版本:
git reset --hard 版本号
- 注意:回退后,当前版本之后的提交历史会隐藏,但可通过版本号再次回退。
- 忽略文件:创建
.gitignore
文件,列出需忽略的文件或目录(如临时文件)。
- 查看提交历史(简化输出):
分支管理
- 查看所有分支(
*
表示当前分支):git branch
- 创建新分支:
git branch 分支名
- 切换到分支:
git checkout 分支名
- 合并分支(先切换到主分支):
git merge 子分支名
- 删除已合并的子分支:
git branch -d 子分支名
- 查看所有分支(
三、远程仓库连接(以 Gitee 为例)
远程仓库如 Gitee 允许代码托管和协作。操作前需生成 SSH 密钥并配置。
生成 SSH 公钥
- 在命令行执行:
ssh-keygen -t ed25519 -C "Gitee SSH Key"
- 完成后,公钥文件(通常为
id_ed25519.pub
)需添加到 Gitee 账户设置中。
- 在命令行执行:
连接远程仓库
- 首次连接:
git remote add origin 远程仓库地址
- 推送代码到云端(如主分支):
git push -u origin "master"
- 查看当前远程仓库配置:
git remote -v
- 验证连接:
git fetch 仓库名称
- 作用:检查连接状态,并获取远程最新数据到本地。
- 首次连接:
云端与本地同步
- 当云端文件数大于本地时,需先拉取再推送:
- 拉取代码(不合并):
git pull 远程仓库别名 分支名
- 拉取并合并(推荐):
git pull --rebase 远程仓库别名 "分支名"
- 拉取代码(不合并):
- 克隆云端仓库到本地:
git clone 远程仓库地址
- 当云端文件数大于本地时,需先拉取再推送:
四、多人协作流程
多人开发时,遵循以下步骤避免冲突:
- 克隆仓库:
git clone 他人远程仓库地址
- 修改与提交:
- 本地修改代码后,务必提交到版本库:
git add . git commit -m "修改描述"
- 本地修改代码后,务必提交到版本库:
- 推送更新:
- 连接远程仓库(如未配置):
git remote add origin 远程仓库地址
- 推送代码:
git push -u origin "master"
- 如果云端代码不同,那就得先拉取再推送(使用
git pull --rebase
)。
- 连接远程仓库(如未配置):
Git 的核心在于理解三个区域的流转:工作区 → 暂存区 → 版本库。