合并失败:在使用合并进行结帐时git如何处理未提交的更改?

时间:2018-06-20 12:43:30

标签: git git-merge git-checkout

因此git checkout --merge期间发生了严重崩溃。

它使存储库处于混乱状态-尽管没有100%确定,但未提交的请求似乎已消失。

事后看来,也许我应该先隐瞒或提交未提交的更改-但是,接下来,该命令的主要意义是什么(?)。

问题是,在这种情况下,是否有人知道Git对未提交的更改做了什么?它们是永久丢失还是存储在某个临时位置?如果仅在此过程中将它们存储在内存中,那么我想这是试图从某个地方进行挖掘的迷失原因。

在查看文档时,他们似乎并未深入了解有关流程本身的https://git-scm.com/docs/git-checkout

1 个答案:

答案 0 :(得分:0)

对于git是否可以存放工作树的备份副本,我无法100%地确定。但是我可以说我还没有观察到这样做,没有文档表明它会这样做,如果这样做的成本使我感到有些惊讶。希望具有代码级知识的人可能会提出更确定的建议,但就目前情况而言,很不幸,您的工作可能会更好地用于确认数据是否从工作文件副本中丢失,如果是,则从文件中复制更改。最后提交状态。

不是星期一的四分卫,但是...

我认为在进行未提交的更改时任何结帐都可能具有风险; checkout --merge之所以如此,是因为您明确地告诉git,您希望它绕过正常的警告,并将更改合并到未提交的工作文件中。崩溃是最坏的情况。我们认为好像是原子操作的操作可能已被中断。

在特定时刻发生崩溃当然是C幸,在造成此类数据丢失之前,checkout --merge可以节省许多实例的时间/精力。

仍然,我个人对git的兴趣是,一旦提交某些东西,它将为防止数据丢失提供非常有力的保证。而且提交和分支的“轻量级”足以使临时的分支变得容易。因此,当我看到一些为我提供一些节省的命令以换取极有可能丢失数据的机会时,我选择避免这样做。并不意味着那是唯一正确的选择,但是如果您冒险,那么您就冒险了。