GIT 分支 -- 本地回购分支

GIT branching -- local repo branch

假设我有一个项目,还有一个主分支,master。 Master 包含一个web 解决方案,我想创建一个新分支,将master 解决方案的css 变成sass。

我创建了一个名为 scss 的新分支。

我在 scss 的分支机构工作。同时,我还需要在 master 分支上工作。所以我在两者之间切换。

当我从scss切换到master时,Visual Studio问我是否要更新已更改的文件,我点了"yes to all"。我希望 scss 文件从解决方案资源管理器中消失,但它们仍然存在。我想知道是否有人可以向我解释当我在同一目录中切换分支时本地发生了什么,这些文件是否应该实际更改?我应该用新分支启动一个不同的目录吗?什么是正确的工作流程?我应该期待什么?

当您正在开发并且您的文件更改未提交到当前分支(本地或主分支)时,您所做的更改未linked 到任何分支(提交 ID 包含actual link) 所以你遇到的是预期的行为。当我开始处理一项任务时,我会利用它,我意识到我在不同的分支上,所以我只是切换到正确的分支。

据我所知,您有 2 个解决方案: 1.你在切换分支之前存储你的更改 2. 在切换分支之前提交更改

存储将被隐藏,直到您将其应用回正确的分支并且提交意味着更改已添加到分支。

您始终可以在分支 之间移动,直到修改后的文件 没有冲突。

有时确实需要此功能。如果两个分支具有几乎相同的更改,并且 mistake/unknowingly 您正在 branch1 中开发,但提交应该转到 branch2。所以你可以很容易地签出分支,修改后的文件在branch2分支中仍然是*修改状态,你可以在这里提交。

如果您希望仅将修改后的更改保留在 branch1 中。

  • 提交(更喜欢此选项,添加有意义的提交,说明您在该分支中取得的进展。)
  • 藏起来

另外如果在切换分支时有任何冲突,git 会抛出一个错误说

error: Your local changes to the following files would be overwritten by checkout: [list of files changed in the active branch] Please, commit your changes or stash them before you can switch branches. Aborting

如果该更改属于同一分支,则提交或隐藏。 如果不是其他分支,请执行 git stash 并切换到另一个分支并在那里应用 stash。