我在一个项目中有3个分支,应该从一开始就完全分开,但是唉,我还在学习git,并且在我工作的中途他们混在一起。
目前,我可以在master
和我的dev-1
分支之间切换。这样做,我得到了
M this/is/a/file.path
M this/is/also/a/file.path
M this/is/a/file.path
我无法在未提交或存储更改的情况下切换两个dev-2
分支,但我认为我还没有这样做。
我首先想知道上面的输出实际意味着什么。我找到了一些示例,说明这些文件已被修改,这是真的,但为什么在切换master
和dev-1
之前我不必隐藏或提交它们?
此外,我希望我的master
分支完全干净,只在我的dev-1
和dev-2
分支上进行更改,但我不确定最佳方法完成此操作,因为我的master
和dev-1
分支似乎共享信息。
答案 0 :(得分:0)
对于您获得的显示,左侧列M
(2cd和第3条记录)表示文件的更改已添加到临时区域(要提交的更改),右侧列M
(第1条记录)表示未进行更改(未提交的更改)。
当你想要在没有提交或存储的情况下切换到另一个分支时,git将保护更改并停止切换到另一个分支。如果您确实没有进行更改,则可以通过git checkout -f branchname
强制切换到另一个分支。这将导致您无法在历史记录中找到这些更改,因为您未提交这些更改。
不存在完全干净的分支(没有提交)。如果您不希望在master分支上提交一些最新更改,则可以按git reset --hard HEAD~n
重置,n
是您要删除的最新提交计数。