我在使用存储库的分支时遇到了这个问题。当我要更改新分支上的某些文件然后切换到其他分支时,git不会引发错误:You have local changes to "X"; cannot switch branches.
错误。取而代之的是,它将仅移至新分支并反映该分支中的更改。如果这是我的初学者错误,请告诉我。
复制步骤-
这使我的母版与我对其进行更改的分支相同,此分支继续存在。一次提交到新创建的分支,可以解决此问题。
答案 0 :(得分:2)
您看到此信息的原因是因为您尚未提交更改。您已经编辑了工作副本并可能运行了std::cout << ...
,但没有运行git add
。
Git将允许您签出另一个具有工作副本更改的分支,前提是它可以保留这些更改。例如,如果您更改了一个文件,并且该文件在两个分支中都相同,则Git无需在签出期间更改文件,因此它将版本保留在工作树中。如果您发现自己不小心进入了错误的分支或需要创建新的主题分支,这将变得更加容易。
如果要将更改保留在分支上,则需要提交更改;否则,Git不会将其作为该分支的一部分进行跟踪。只需在签出给定分支的情况下对工作副本进行更改,就不会以任何方式保留它们。
如果您的工作树是干净的(也就是说,它没有未提交的更改),git commit
会将工作树的状态完全更改为另一个分支。