2016-06-09 51 views
0

昨天晚上,我在上午1点的最佳时间进行了编码,最终导致了一些不太理想的git行为(而且我现在更后悔使用git GUI而不是命令线,但这是另一个故事)。在客户端GUI和服务器之间的Git丢弃提交

我刚刚通过桌面工具在本地创建了一个提交,并点击“同步”按钮推送给主设备。此时此刻,正在深夜,我的ISP决定将我的互联网切断10分钟。正如预期的那样,同步超时。一旦我的连接恢复,我去重试推送提交,但在本地,GUI显示提交已被推送。我切换到命令行工具,双重检查git status,当然,没有修改文件。

但是,当我访问my repository时,我看不到应用于我的文件的提交或更改。如果我尝试(在线)编辑我的失败提交中的任何一个文件,它会给我一个错误,简单地说明“文件无法编辑”。更奇怪的是,我的桌面工具“提交历史记录”链接到the commit,即使它未应用于存储库或以其他方式显示在GitHub上。

看来我的提交处于推送和实际应用之间的某种奇怪状态。我想知道是否有人遇到过类似的问题,并找到了解决方法,或者对如何至少解锁受影响的文件并重新应用我的更改有任何意见。

感谢您的帮助!

回答

0

我能够通过给我的只读文件授予写入权限并向每个文件添加编辑来解决我的问题。然后,我做出了这个改变,并且成功地推动了这个提交,而这个提交又导致了22小时前的提交以及其更改,最终被应用到GitHub上。

0

使用命令行(或者如果它提供了某些东西,也可能是GUI)将目录更改为repo并执行“git fetch”。这将刷新远程状态的缓存,然后允许您重试推送。

+0

不幸的是,这样做并没有改变任何东西。提交仍然出现在本地提交,但不在GitHub的代码库上。 – mattkgross

+0

并推动仍然失败?这很奇怪...... –

+0

尝试再次将repo克隆到不同的地方,然后重新提交提交。这是一个不太好的解决方法,但如果这不起作用,那么这是一个混乱。 –