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 版本:
shellgit -v
-
配置全局用户名称和邮箱(仅需设置一次):
shellgit config --global user.name "您的名称" git config --global user.email "您的邮箱"
-
初始化新仓库:
shellgit init
-
-
文件管理
-
添加文件到暂存区:
-
添加指定文件:
shellgit add 文件名
-
添加所有修改的文件:
shellgit add .
-
-
提交文件到版本库:
shellgit commit -m "注释内容"
-
查看文件状态(
-s
参数简化输出):shellgit status -s
- 状态符号含义:
A
:新文件,已添加到暂存区。??
:未添加到暂存区。- 红色
M
:文件已修改,但未提交到暂存区。 - 绿色
M
:文件已修改,且已提交到暂存区。
- 状态符号含义:
-
恢复工作区文件(用暂存区覆盖工作区):
shellgit restore 目标文件
-
移除暂存区文件(保留工作区文件):
shellgit rm --cached 目标文件
-
-
历史与回退
-
查看提交历史(简化输出):
shellgit log --oneline
-
回退到指定版本:
shellgit reset --hard 版本号
- 注意:回退后,当前版本之后的提交历史会隐藏,但可通过版本号再次回退。
-
忽略文件:创建
.gitignore
文件,列出需忽略的文件或目录(如临时文件)。
-
-
分支管理
-
查看所有分支(
*
表示当前分支):shellgit branch
-
创建新分支:
shellgit branch 分支名
-
切换到分支:
shellgit checkout 分支名
-
合并分支(先切换到主分支):
shellgit merge 子分支名
-
删除已合并的子分支:
shellgit branch -d 子分支名
-
三、远程仓库连接(以 Gitee 为例)
远程仓库如 Gitee 允许代码托管和协作。操作前需生成 SSH 密钥并配置。
-
生成 SSH 公钥
-
在命令行执行:
shellssh-keygen -t ed25519 -C "Gitee SSH Key"
-
完成后,公钥文件(通常为
id_ed25519.pub
)需添加到 Gitee 账户设置中。
-
-
连接远程仓库
-
首次连接:
shellgit remote add origin 远程仓库地址
-
推送代码到云端(如主分支):
shellgit push -u origin "master"
-
查看当前远程仓库配置:
shellgit remote -v
-
验证连接:
shellgit fetch 仓库名称
- 作用:检查连接状态,并获取远程最新数据到本地。
-
-
云端与本地同步
-
当云端文件数大于本地时,需先拉取再推送:
-
拉取代码(不合并):
shellgit pull 远程仓库别名 分支名
-
拉取并合并(推荐):
shellgit pull --rebase 远程仓库别名 "分支名"
-
-
克隆云端仓库到本地:
shellgit clone 远程仓库地址
-
四、多人协作流程
多人开发时,遵循以下步骤避免冲突:
-
克隆仓库 :
shellgit clone 他人远程仓库地址
-
修改与提交 :
-
本地修改代码后,务必提交到版本库:
shellgit add . git commit -m "修改描述"
-
-
推送更新 :
-
连接远程仓库(如未配置):
shellgit remote add origin 远程仓库地址
-
推送代码:
shellgit push -u origin "master"
-
如果云端代码不同,那就得先拉取再推送(使用
git pull --rebase
)。
-
Git 的核心在于理解三个区域的流转:工作区 → 暂存区 → 版本库。