假设我有一个项目,一个主分支,主人。 Master包含一个Web解决方案,我想创建一个新的分支,将master的解决方案的css变成sass。
我创建了一个名为scss的新分支。
我在scss上工作。同时,我还需要在master分支上工作。所以我在两者之间切换。
当我从scss切换到master时,Visual Studio会询问我是否要更新已更改的文件,我点击了“yes to all”。我希望scss文件从解决方案资源管理器中消失,但它们仍然存在。我想知道当我在同一目录中切换分支时,是否有人可以向我解释本地发生了什么,这些文件是否应该实际更改?我应该用新分支启动一个不同的目录吗?什么是正确的工作流程,我应该在这里期待什么?
答案 0 :(得分:1)
当你正在开发和你的文件'更改未在当前分支(本地或主)上提交,您所做的更改未链接到任何分支(提交ID包含实际链接的引用),因此您遇到的是预期的行为。当我开始处理任务时我会利用它,并且我意识到我在不同的分支上,所以我只是切换到正确的分支。
您从我看到的内容中有2个解决方案: 1.在切换分支之前存储您的更改 2.在切换分支
之前提交更改隐藏将被隐藏,直到您将其应用回正确的分支,并且提交意味着更改已添加到分支。
答案 1 :(得分:1)
您可以随时在分支之间移动,直到修改后的文件中没有冲突。
有时候需要这个特色。如果两个分支具有几乎相同的更改,并且错误/不知不觉中您正在branch1中进行开发,但提交应该转到branch2。因此,您可以轻松签出分支,修改后的文件也将在branch2分支中处于* modified状态,您可以在这里提交。
如果您希望仅在branch1中保留修改后的更改。
此外,如果在切换分支时出现任何冲突,git将抛出错误
错误:您对以下文件的本地更改将被覆盖 通过结帐:[活动分支中更改的文件列表]请, 在切换分支之前提交更改或存储它们。 中止
如果更改属于同一分支,则提交或存储。 如果没有其他分支,请执行git stash并切换到另一个分支并在那里应用存储。