【发布时间】:2019-08-25 11:47:30
【问题描述】:
很快就会明白,我不是 Git 甚至 Gitkraken 的大师。因此,我只有一个 hotfix、一个 master 和一个 feature 分支。我在修补程序、提交、推送和合并到 master 中进行更改(然后我也推送)。到目前为止,我一直在努力避免变得比这更复杂。
即使我的一个特性分支也有点懦弱,因为我仍然将我的特性工作与我的工作文件分开(在单独的文件/目录中),并且始终将 master 合并到特性分支中,这样我就不会失去所有站点的修补程序——所有这些都是为了让我的关键站点文件保持完整且不受任何分支的影响。我认为这是一种中间实践,因为我在继续维护网站的同时,还对 Git 有所了解。既然现在我遇到了这个奇怪的问题,我就明白为什么我还没有迈出那一步。显然我确实没有准备好使用 Git 或 Gitkraken。
今天早上,我做了一些修补程序的工作,并将其合并到 master 中。没有任何问题。然后我尝试切换到特性分支(我已经好几个星期没有进入这个分支了,因为它最近都是关于热修复的),然后一切都崩溃了。 Gitkraken 抛出错误:“结帐失败。无法删除 [swf 文件 - 在我上次提交之前很久就存在的文件] 不允许操作。”什么?使用这些关键词进行网络搜索几乎一无所获……我猜这让我成为第一个遇到这种情况的人。
然后!... 立即,仍然在修补程序中并且没有做任何进一步的事情,突然有 27 个文件更改暂存并准备提交!他们都删除了文件,而 没有 我实际上扔掉了其中的文件。其中一些是我上次提交后我什至没有碰过的,另一些是我制作的新文件。
我能够简单地撤消按钮并恢复那些已删除的文件,但这对 Gitkraken 时间线(请参阅https://postimg.cc/ppw9zFNn)造成了我无法理解的莫名其妙的事情......不知何故它涉及更改已转到我无法切换到的功能分支(屏幕截图中的 JQMUpdates5)...?
至少我找回了那些被删除的文件。但是,我无法继续前进或将我的存储库恢复到可用状态。即使通过 Time Machine 恢复到今天早上的状态并尝试重试该过程,我也得到了相同的结果。
我唯一能想到的是文件GK“无法删除”被锁定在Finder中。这应该不是问题,因为该文件与 repo 中的许多其他类似文件相同——所有这些文件也都被锁定在 Finder 中。
除此之外,我突然想到,在尝试切换到功能之前,我没有推动 master ——就像我通常做的那样。但据我所知,在切换到不同的本地分支之前应该没有必要更新远程主分支......
我需要帮助。这是一个错误吗?我的回购损坏了吗?结果似乎是,虽然我个人没有删除任何文件,但当我尝试(不成功)切换到 JQMUpdates5(功能)分支时,GK 似乎随机为我做这件事。
我试图理解为什么我的修补程序分支处于完全最新状态,直到尝试切换到功能分支,突然 GK 丢弃了数十个文件并一举将这些删除分阶段进行。撤消没有帮助——只会使问题复杂化——现在我很纠结,不知道如何找回我的回购。失去 JQMUpdates5 分支对我来说绝对是一场灾难,因为它包含大量的开发工作。
我不确定我对问题的描述有多大帮助(因为这与我遇到的任何事情一样令人困惑),但如果有人有任何见解,我肯定会感谢一些指导。
【问题讨论】:
标签: git version-control git-commit gitkraken