Appearance
Git
收录了一些git相关的知识。
1. 常用命令
- git init:初始化本地git仓库(创建新仓库)
- git add:添加文件到暂存区
- git commit:提交暂存区到本地仓库
- git status:查看当前版本状态(是否修改)
- git push:将当前分支push到远程分支
- git pull:获取远程分支并merge到当前分支
- git clone:clone远程仓库
- git branch:显示本地分支
- git branch -d:删除分支
- git checkout:检出已存在的分支或文件
- git checkout -b:创建+切换分支
- git merge:合并分支
2. git stash
在 Git 中,stash(存储)是一种临时保存工作目录和暂存区改动的方法,让你可以快速切换上下文,而无需提交未完成的代码。以下是关键点解析:
核心作用
- 临时保存改动:将当前未提交的改动(包括工作目录和暂存区的修改)保存到一个栈结构中,之后可以随时恢复。
- 解决场景:当你需要切换分支或处理紧急任务,但当前代码未完成、不适合提交时,用
stash暂存改动。
常用命令
保存当前改动
bashgit stash- 默认会保存工作目录和暂存区的修改(不包括未跟踪的文件)。
- 添加
-u或--include-untracked可以包含未跟踪的文件:bashgit stash -u
查看存储列表
bashgit stash list- 显示所有存储项,格式如
stash@{0}: WIP on 分支名: 最近提交的哈希和消息。
- 显示所有存储项,格式如
恢复存储的改动
- 恢复最近一次的存储(不删除存储记录):bash
git stash apply - 恢复指定存储(如
stash@{1}):bashgit stash apply stash@{1} - 恢复并删除存储(
pop):bashgit stash pop
- 恢复最近一次的存储(不删除存储记录):
删除存储
- 删除最近一次的存储:bash
git stash drop - 删除所有存储:bash
git stash clear
- 删除最近一次的存储:
创建带描述的存储
bashgit stash save "描述信息"- 便于后续识别存储内容。
适用场景
- 切换分支:当前分支有未提交代码,但需要切换到其他分支修复 Bug。
- 紧急任务:临时保存当前工作,处理更高优先级的任务。
- 实验性代码:不确定改动是否保留时,先暂存再决定。
注意事项
- 存储是临时的:长期未恢复的存储可能被遗忘,建议尽快处理。
- 冲突风险:恢复存储时若与当前代码冲突,需手动解决冲突。
- 不包含未跟踪文件:默认不保存新创建的文件(需加
-u参数)。
示例流程
bash
# 1. 修改文件后暂存(未提交)
git add file.txt
git stash save "修改了file.txt"
# 2. 切换分支处理其他任务
git checkout another-branch
# 3. 返回原分支并恢复存储
git checkout original-branch
git stash pop通过 stash,你可以灵活管理未完成的代码,保持工作流整洁。
3. 不同类型的分支
master分支:通常用于线上发布使用。它应该始终保持稳定,并且只接受来自其他分支经过充分测试和验证的更改。
dev分支:用于平常的开发和测试。它通常包含最新的开发进度,并且可以接受来自功能分支或修复分支的更改。
Feature branches(功能分支):用于开发新功能。每个功能分支都应该专注于一个特定的功能,并且在功能完成后合并到dev分支。
Hotfix branches(修复分支):用于修复bug。每个修复分支都应该专注于修复一个特定的bug,并且在修复完成后合并到dev分支。
Release branches(发布分支):用于准备新版本的发布。它通常从dev分支中创建,并且只接受用于修复bug和准备发布的更改。当新版本准备好发布时,发布分支会被合并到master分支和dev分支。