【问题标题】:Difficutly sorting changes between git branches, changing branchesgit分支之间的排序变化,更改分支的困难
【发布时间】:2017-07-04 20:50:03
【问题描述】:

我在一个项目中有 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 分支似乎共享信息。

【问题讨论】:

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


【解决方案1】:

对于您得到的显示,左侧列M(2cd 和第 3 条记录)表示文件的更改已添加到暂存区(要提交的更改),右侧列 M(第 1 条记录)表示更改尚未暂存(更改未暂存以提交)。

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

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

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 2014-06-08
    • 2019-12-22
    • 2020-08-20
    • 1970-01-01
    • 2018-01-27
    • 2017-12-23
    • 2013-10-08
    • 2022-01-08
    相关资源
    最近更新 更多