在git分支之间进行差异排序,改变分支

时间:2017-02-15 23:36:50

标签: git version-control git-branch branching-and-merging

我在一个项目中有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分支,但我认为我还没有这样做。

我首先想知道上面的输出实际意味着什么。我找到了一些示例,说明这些文件已被修改,这是真的,但为什么在切换masterdev-1之前我不必隐藏或提交它们?

此外,我希望我的master分支完全干净,只在我的dev-1dev-2分支上进行更改,但我不确定最佳方法完成此操作,因为我的masterdev-1分支似乎共享信息。

1 个答案:

答案 0 :(得分:0)

对于您获得的显示,左侧列M(2cd和第3条记录)表示文件的更改已添加到临时区域(要提交的更改),右侧列M (第1条记录)表示未进行更改(未提交的更改)。

当你想要在没有提交或存储的情况下切换到另一个分支时,git将保护更改并停止切换到另一个分支。如果您确实没有进行更改,则可以通过git checkout -f branchname强制切换到另一个分支。这将导致您无法在历史记录中找到这些更改,因为您未提交这些更改。

不存在完全干净的分支(没有提交)。如果您不希望在master分支上提交一些最新更改,则可以按git reset --hard HEAD~n重置,n是您要删除的最新提交计数。