代码管理——Git的使用(1)
Git 是一个分布式版本控制系统,用于跟踪文件变化、协同开发和管理代码历史。它能记录每一次修改的细节(谁、何时、修改了什么),支持多人协作、版本回退、分支管理等核心功能。
Git 基础使用
(1) 创建仓库
-
初始化本地仓库
git init # 在当前目录创建空仓库 git init <目录名> # 在指定目录创建仓库 -
克隆远程仓库
git clone <远程仓库URL> # 克隆远程仓库到本地 git clone -b <分支名> <URL> # 克隆指定分支
(2) 操作仓库
-
添加文件到暂存区
git add <文件名> # 添加单个文件 git add . # 添加所有修改和新文件 git add *.txt # 添加所有txt文件 -
提交到本地仓库
git commit -m "提交说明" # 提交暂存区的修改 git commit -am "提交说明" # 添加所有修改并直接提交(跳过`git add`)
(3) 版本回退
-
查看提交历史
git log # 查看完整历史 git log --oneline # 单行显示历史 git log -p # 显示修改细节 -
回退到指定版本
git reset --hard HEAD^ # 回退到上一个版本 git reset --hard <commit-id> # 回退到指定commit(前7位即可) git checkout <commit-id> # 临时切换到旧版本(只读)
(4) 工作区与暂存区
- 工作区:本地修改但未
git add的文件。 - 暂存区:已
git add但未git commit的文件。 - 仓库:已提交的历史版本。
(5) 修改与删除
-
撤销工作区修改
git checkout -- <文件名> # 丢弃未暂存的修改 -
删除文件
git rm <文件名> # 删除文件并暂存删除操作 git rm --cached <文件名> # 从仓库移除但保留本地文件
3. 远程仓库操作
(1) 关联远程仓库
git remote add origin <远程仓库URL> # 关联远程仓库(默认别名origin)
git remote -v # 查看远程仓库信息
(2) 推送与拉取
-
推送本地提交
git push origin <分支名> # 推送本地分支到远程 git push -u origin main # 首次推送并设置上游分支 -
拉取远程更新
git pull origin <分支名> # 拉取并合并远程分支 git fetch origin # 仅获取远程更新(不自动合并)
4. 分支管理
(1) 基础操作
-
创建与切换分支
git branch <分支名> # 创建分支 git checkout <分支名> # 切换分支 git checkout -b <分支名> # 创建并切换到新分支 -
删除分支
git branch -d <分支名> # 删除已合并的分支 git branch -D <分支名> # 强制删除未合并的分支
(2) 合并分支
-
普通合并
git checkout main # 切换到主分支 git merge <分支名> # 合并指定分支到当前分支 -
解决冲突
手动编辑冲突文件 →git add→git commit。 -
变基(Rebase)
git checkout feature git rebase main # 将feature分支的修改“嫁接”到main最新提交后
标签管理
-
创建标签
git tag v1.0 # 轻量标签 git tag -a v1.0 -m "版本说明" # 附注标签(含提交信息) -
推送标签到远程
git push origin v1.0 # 推送单个标签 git push origin --tags # 推送所有标签
其他常用命令
| 命令 | 用途 | 示例 |
|---|---|---|
git status |
查看当前状态(修改/暂存/未跟踪文件) | git status |
git diff |
查看工作区与暂存区的差异 | git diff |
git stash |
临时保存未提交的修改 | git stash → git stash pop |
git cherry-pick <commit> |
将指定提交应用到当前分支 | git cherry-pick abc1234 |
git rebase -i <commit> |
交互式变基(合并/修改提交历史) | git rebase -i HEAD~3 |
git reflog |
查看所有操作记录(包括已删除的commit) | git reflog |
git config |
配置Git参数(用户名/邮箱等) | git config --global user.name "Your Name" |
7. 配置文件与忽略文件
-
全局配置
git config --global user.name "Your Name" git config --global user.email "your@email.com" -
忽略文件(.gitignore)
创建.gitignore文件,列出需忽略的文件/目录:# 示例 *.log /node_modules .env
工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库
↑ | |
└── git checkout / git reset ────┘
浙公网安备 33010602011771号