Visual Studio 2022中临时保存分支Two变更应选哪个选项?
问题:分支中途切换时,如何选择正确的暂存选项?
操作背景:
- 检出Main分支
- 基于Main分支创建名为One的新分支,完成任务并提交
- 重复上述步骤,创建名为Two的新分支并处理任务
在处理分支Two的任务中途,发现分支One存在bug,尝试切换到One分支时,Visual Studio 2022给出三个选项:
- 将变更带入One分支
- 暂存变更(Stash the changes)
- 丢弃变更
需求是临时保存分支Two的所有变更,修复One分支bug后继续处理Two的任务(确保无变更丢失)。已知要选暂存变更,但对Commit All下拉菜单中的两个选项感到困惑:
- Stash All (--include-untracked)
- Stash All and keep staged (--keep-index)
请问应选择哪个选项?
解决方案
两个选项的核心区别:
- Stash All (--include-untracked):保存当前工作区的所有变更,包括已修改的追踪文件和未被Git记录的新文件(比如刚创建还没执行
git add的文件),保存后工作区会回到干净状态。 - Stash All and keep staged (--keep-index):仅保存工作区中未暂存的变更,已经执行
git add暂存的文件会保留暂存状态留在当前分支。
推荐选择:
如果你要确保所有变更(包括新创建的未追踪文件)都被完整保存,后续切换回Two分支能完全恢复到暂停前的状态,直接选**Stash All (--include-untracked)**即可。
这个选项会把你在Two分支上做的所有修改(不管有没有执行git add)都暂存起来,切换到One分支修复bug后,回到Two分支执行git stash pop就能恢复所有变更,继续之前的工作,不会有任何内容丢失。
内容的提问来源于stack exchange,提问作者Computer
相关产品推荐
相关产品推荐

