Raul Guillemes Moros Asked: 2024-11-13 19:55:42 +0800 CST2024-11-13 19:55:42 +0800 CST 2024-11-13 19:55:42 +0800 CST 为什么我可以切换 git 分支而不提交更改而不存储它?[重复] 772 当我在某个分支中开发新功能时,系统会要求我在另一个分支中执行某些操作。因此,像往常一样,我必须存储更改或提交才能更改分支。但在某些情况下,我可以不执行任何操作就切换分支(通常是在分支是新分支时)。我只是想知道这背后的原因。谢谢! git 1 个回答 Voted Best Answer grawity_u1686 2024-11-13T20:08:24+08:002024-11-13T20:08:24+08:00 这种情况通常发生在您修改的文件在这些分支之间也存在差异时,切换分支需要 Git 在修改后的文件之上提取“另一个分支”版本 - 这意味着丢失未提交的更改,因此它拒绝这样做(除非您强制执行操作)。 (理论上它可以尝试自动存储/签出/取消存储,就像“git rebase”已经使用其“自动存储”选项所做的那样,但这样做本质上是一个完整的三向合并,并且可能在应用存储时导致合并冲突 - 即不能保证它可以将文件切换到新分支并正确保存未提交的更改,反向操作更是如此。) 当两个分支之间的文件相同时,在分支之间切换时该文件保持不变,并且本地更改可以保持原样。
这种情况通常发生在您修改的文件在这些分支之间也存在差异时,切换分支需要 Git 在修改后的文件之上提取“另一个分支”版本 - 这意味着丢失未提交的更改,因此它拒绝这样做(除非您强制执行操作)。
(理论上它可以尝试自动存储/签出/取消存储,就像“git rebase”已经使用其“自动存储”选项所做的那样,但这样做本质上是一个完整的三向合并,并且可能在应用存储时导致合并冲突 - 即不能保证它可以将文件切换到新分支并正确保存未提交的更改,反向操作更是如此。)
当两个分支之间的文件相同时,在分支之间切换时该文件保持不变,并且本地更改可以保持原样。