Gitkraken存储库,无法检出分支,然后突然删除了数十个文件

时间:2019-04-03 20:29:37

标签: git version-control git-commit gitkraken

很快就会明白,我不是Git甚至Gitkraken的大师。这样,我只有一个修复程序,一个master和一个功能分支。我在修补程序中进行更改,提交,推送并合并到master(然后我也推送)中。到目前为止,我一直在努力使事情变得比这更复杂。

即使我的一个功能分支有些怯ward,我仍然将我的功能工作与工作文件分开(在单独的文件/目录中),并始终将master合并到功能分支中,这样我就不会丢失全部该网站的修补程序–全部,使我的重要网站文件保持完整且不受任何分支影响。我认为这是一种中间做法,因为我继续维护该站点,同时将头转向Git。从现在开始,我遇到了这个奇怪的问题,我明白了为什么我还没有实现这一目标。显然,我确实准备使用Git或Gitkraken。

今天早上,我对修补程序做了一些工作,然后将其合并为master。没有任何问题。然后,我尝试切换到功能分支(由于最近一直是关于热修复的问题,所以我已经有好几个星期没来了),然后一切都变得混乱了。 Gitkraken引发错误:“检出失败。无法删除[swf文件-我最后一次提交之前存在的文件]操作不允许。”什么?用这些关键短语进行的网络搜索实际上没有任何结果……我想我是第一个发生这种情况的人。

然后!...立即,仍在修复程序中,并且没有做任何进一步的处理,突然就上演了27个文件更改并准备提交!他们全部删除了文件,而我实际上没有丢掉它们。自上次提交以来,我什至没有接触过其中的一些文件,另一些则是我制作的新文件。

我能够简单地取消返回的按钮并恢复那些已删除的文件,但是这对Gitkraken时间轴(见https://postimg.cc/ppw9zFNn)造成了莫名其妙的变化,我无法理解...以某种方式涉及我无法切换到...的功能分支(也就是屏幕截图中的JQMUpdates5)已进行更改??

至少我找回了那些删除的文件。但是,我无法前进或将我的存储库恢复到可行状态。即使通过Time Machine恢复到今天早上的状态,并尝试重试该过程,我仍然得到相同的结果。

我唯一想到的是GK文件“无法删除”已锁定在Finder中。这不应该成为问题,因为此文件与存储库中的许多其他文件相同(所有文件也都已在Finder中锁定)。

除此之外,在我看来,在尝试切换至功能之前,我没有按过master键-就像我通常那样。但是据我了解很少,在切换到其他本地分支之前不必更新远程主分支。

我需要帮助。这是错误吗?我的存储库已损坏?结果似乎是,尽管我个人没有删除任何文件,但是当我尝试(未成功)切换到JQMUpdates5(功能)分支时,GK似乎是在为我随机执行。

我试图了解为什么我的修补程序分支处于完全最新的状态,直到尝试切换到功能分支为止,这时GK突然丢弃了数十个文件,并将这些删除操作一次完成。撤消操作无济于事-只会使问题变得复杂-现在我如此混乱,我不知道如何找回回购单。失去JQMUpdates5分支对我来说绝对是一场灾难,因为它包含了大量的开发工作。

我不确定我对问题的描述有多有用(因为这与我遇到的任何事情一样令人困惑),但是如果有人有任何见解,我一定会感谢一些指导。

1 个答案:

答案 0 :(得分:1)

好吧,令人难以置信的是,我将此问题追溯到本地计算机上的权限问题。由于某些原因,我的Mac笔记本电脑上的admin帐户在锁定这些古老的swf文件时遇到了一些问题,与此同时,这些文件的权限与包含主文件夹的权限有所不同(后者具有完全权限,而前者基本上没有权限)。 / p>

因此,Gitkraken在切换分支时阻塞了这些文件(从而试图删除所述锁定且未经许可的文件)。

现在...为什么这恰好等于Gitkraken,然后删除一堆其他不相关的文件,然后立即进行此更改而无需我的输入-那是另一回事。幸运的是,由于我从备份中还原了本地存储库,递归地重新授予了我自己处理这些问题文件的权限,然后我将所有这些都强制推送到了远程存储库(回想起来,我设法做出了一些我本不应该做的努力。现在,我回到了完整的操作状态,回购是最新的并且可以完全切换。世界再次变得有意义。

因此,所有这些都可能会发生在其他任何人身上。似乎有可能影响任何人,因为Sierra +权限似乎有点不可思议。希望这能在某个时候对某人有所帮助。