pycharm和git, pull前修改的东西消失了怎么办?

本文介绍如何在PyCharm中使用Git时,误进行pull操作导致未提交的更改丢失后,通过查找.shelf文件夹下的uncommittedchangesbeforeupdate来恢复未提交的更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在使用pycharm中的git的时候,直接使用了拉取(pull)小箭头。拉完之后发现之前新建的文件和一些改动不知道去哪里了。。。。

遇到问题先别慌,炸一下还能吃(bushi)

因为相信git和pycharm一定会留下一些我写过的痕迹,于是我找了一遍pycharm的history和recent changes,发现我确实没记错,我是新建过一个文件的。
但是在charm里面我没找到这个新建的文件内容是什么。

于是——找到project所保存的文件夹,里面有个文件夹叫“.idea”。

这么多文件我看哪个?

咱也不知道每个文件都是什么意思,但是根据修改时间,我们可以锁定到最新改动的一个文件夹:“shelf”
进到这个文件夹里,我就知道,我离找到我丢掉的文件不远了!因为里面有一个文件夹叫:“uncommitted changes before update”!
好了,就是这个了!

这个文件夹有什么内容?

现在看来只有一个文件 “shelved.patch”
这个文件里面长这样

1.当年有改变的文件

Index: 3minimap/get_ref_seqs_coregene.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
<+># -*- coding :utf-8 -*-\r\n\r\nimport pandas as pd\r\nimport os\r\nimport re\r\nimport dask.dataframe as d
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/3minimap/get_ref_seqs_coregene.py b/3minimap/get_ref_seqs_coregene.py
--- a/3minimap/get_ref_seqs_coregene.py	(revision 7dfee7a7f0bfdad3b64134e35410124d3de86de0)
+++ b/3minimap/get_ref_seqs_coregene.py	(date 1669377252646)
@@ -62,7 +62,7 @@
     # first, find the colunm "No. isolates" value == the num of sequences that compute the roary coregene
     # next, for each in_seq_name colunms, extrcat it column
     # then, write the whole column to a file named by in_seq_name
-    gene_presence_absence_df = dd.read_csv(gene_presence_absence_csv)
+    gene_presence_absence_df = dd.read_csv(gene_presence_absence_csv, dtype=object)
     seq_num = len(seqs_list)
     core_gene = gene_presence_absence_df[gene_presence_absence_df["No. isolates"] >= seq_num]
     for seq in seqs_list:

这就非常舒适了!
第一行告诉我们是哪个文件改了没有commit的
第一个<+>号的那行太长了,我只截了一段,看上去像是这个文件原来的所有内容
“========”分隔符
分隔符后面- - - +++的行,告诉我们是文件原本的改变和我们pull之后现在的情况(我猜是这样)
@@行,我猜是告诉我们改在了第几行。(虽然从最后的文件来看具体行数不太准,但是基本可以看出来变化位置就在那几行范围之内)
然后再往下看就看到,有一行前面标了-号和+号,就是区别所在啦!!

2.当年新建的文件

费这么大劲,就是想找这个文件。当时新建了之后写了一些思路上的东西,今天pull的时候,这个文件就凭空消失了,甚至不是被删除的,因为回收站里找不到。。。。还好最终一通操作猛如虎,找回来了。

Index: 3minimap/extract_random_query.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/3minimap/extract_random_query.py b/3minimap/extract_random_query.py
new file mode 100644
--- /dev/null	(date 1669960796277)
+++ b/3minimap/extract_random_query.py	(date 1669960796277)
@@ -0,0 +1,9 @@
+# -*- coding:utf-8 -*-
+
+import os
+import get_ref_seqs_coregene
+
+#这个程序要完成
+# 1.从一个cluster list列表里面随机挑选k组m个序列
+# 2.从roary_corealign结果中找到这些序列对应的位置提取出来
+# 3.从minmap,cluster root序列所对应的比对结果中找到这一组序列所对应的比对结果
\ No newline at end of file

有这个新建文件的diff记录做对比,和上面有改动的内容对照着看,大概能猜出来这些行的意思了。

### 如何在 PyCharm 中配置使用 Git 进行版本管理 #### 安装 Git 并验证安装 为了能够在 PyCharm 中使用 Git 版本控制系统,首先需要确保计算机上已经安装了 Git。可以通过访问 Git 的官方网站下载适合操作系统的最新版 Git 软件包并按照提示完成安装过程[^2]。 #### 配置 PyCharm 使用 Git 打开 PyCharm 后进入 `File` -> `Settings` (对于 macOS 用户则是 `PyCharm` -> `Preferences`) ,找到左侧列表中的 "Version Control" -> "Git" 。在此处设置 Git 可执行文件的位置,通常为 `C:\Program Files\Git\bin\git.exe` 或者通过命令行运行 `where git` 来查找确切位置。点击 Test 按钮来检验配置是否正确无误。 #### 创建或克隆仓库 如果要开始一个新的项目,则可以直接初始化新的 Git 仓库;如果是加入现有的团队协作开发,则应该从远程服务器如 Gitee 克隆现有仓库至本地磁盘指定位置。这一步骤同样是在 VCS 主菜单下的 “Checkout from Version Control” 功能里实现的[^1]。 #### 初始化本地仓库并与远程同步 当创建了一个全新的 Python 工程后,可以选择 `VCS` -> `Enable Version Control Integration…` 开启对该工程的支持,并选择 Git 类型作为版本控制器。接着就可以把当工作区的内容提交给本地库了。在此之建议先 pull 获取最新的远端更改以防冲突发生。 #### 添加修改后的文件到暂存区 选中想要跟踪变化的文件夹或者单个文件,右键选择 `Git` -> `Add` 将其添加进索引(Index),这样做的目的是告诉 Git 哪些改动是要被记录下来的。 #### 提交变更到本地仓库 一旦完成了对项目的编辑并且选择了哪些部分应当纳入版本历史之中,就可准备做一次 commit。往 `VCS` -> `Commit` (也可以直接按 Ctrl+K 快捷键)。在这里填写描述性的日志消息以便日后回顾这些变动的原因以及具体内容是什么。 #### 推送更新到远程仓库 最后一步就是推送所有的 commits 到云端共享空间去了。选择 `VCS` -> `Git` -> `Push` 即可将本地所做的全部改变发送出去供其他成员查看或是合并入主干分支当中。 ```bash # 查看已追踪但未提交的变化 git status # 显示最近的一次提交详情 git show HEAD ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwddd666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值