vault backup: 2026-11-07 16:33:44

This commit is contained in:
cheney
2026-11-07 16:33:55 +08:00
commit 7015312702
1208 changed files with 132432 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
**能,而且可以非常灵活地在多个分支上重复使用。**
Git 的 Stash(贮藏)功能可以把它想象成一个“**代码剪贴板**”,里面的内容和“创建”它的那个分支早已没有了绑定关系,可以随意粘贴到任何其他分支上。
### 🎯 核心:使用 `git stash apply`
要在别的分支提取,关键就是使用 `git stash apply` 命令,而不是 `pop`。
**`apply` vs `pop` 的区别**:
| 命令 | 恢复后 | 适用场景 |
| :--- | :--- | :--- |
| `git stash apply` | Stash 内容**保留**在堆栈中 | 需要将同一份修改应用到多个分支,对代码改动进行交叉测试 |
| `git stash pop` | 恢复后,对应的 Stash 会**被删除** | 适合只想把代码“移动”到另一个分支,不需要再保留这份修改的场景 |
### 🧭 操作指南:一份 Stash 在多分支间复用
1. **保存当前工作**:
```bash
# 建议添加描述,方便日后识别
git stash push -m "进行中但没有完成的功能X"
```
2. **应用到目标分支**:
```bash
# 切换到你要应用修改的分支
git checkout 目标分支名
# 将 Stash 中的修改应用过来
git stash apply
# 如果本地有多个 Stash,用以下命令查看列表,
# 再用 git stash apply stash@{n} 应用特定的一个
git stash list
```
**执行后**:代码改动会出现在当前分支的工作区,`git stash list` 里原来的记录还在,意味着你可以去下一个分支继续执行 `git stash apply`。
3. **(可选)应用完成后清理**:当所有需要的分支都应用完毕,不再需要这份 Stash 时,可以手动清理掉:
```bash
git stash drop stash@{0}
```
### ⚠️ 可能遇到的问题及解决方案
**问题:应用时产生合并冲突**
当目标分支的代码与你存储的内容差异较大,导致 Git 不知道如何自动合并时,就会出现冲突。
**解决方案**:冲突的产生是正常现象,手动处理即可。
1. **找到冲突**:Git 会告诉你哪些文件冲突并暂停应用。
2. **手动解决**:打开冲突文件,编辑代码,保留你需要的部分(通常删除 `<<<<<<<`,`=======`,`>>>>>>>` 这些标记)。
3. **告知 Git**:解决后保存文件,并执行 `git add <冲突文件名>`。
4. **完成应用**:无需额外提交,`add` 命令后,Stash 的应用即告完成。
### 🚀 其他常用管理命令
* **查看所有 Stash**:`git stash list`。
* **从 Stash 直接创建新分支**:`git stash branch <新分支名> stash@{0}`。这会将你的 Stash 恢复到一个新的独立分支,在复杂改动时特别好用。
* **存储未跟踪的文件**:`git stash -u`。
* **清理所有 Stash**:`git stash clear`。