gpt4 book ai didi

git pop 失败,错误为 "error: could not restore untracked files from stash"

转载 作者:行者123 更新时间:2023-12-03 08:02:14 40 4
gpt4 key购买 nike

我已经在本地针对主分支完成了大约 2 个月的工作(没有提交或暂存任何内容)。这包括添加新的(未跟踪的)文件和修改现有的跟踪文件。

然后我想在不进行更改的情况下检查主分支上的某些内容,所以这样做了:

git stash -all

期望它能够存储我的跟踪和未跟踪的文件更改。

然后我就这么做了

git stash pop

为了取回我的更改,但出现了数千个错误:

.project already exists, no checkout
all/.project already exists, no checkout
all/.settings/org.eclipse.wst.common.component already exists, no checkout
all/target/vault-work/META-INF/MANIFEST.MF already exists, no checkout
all/target/vault-work/META-INF/vault/config.xml already exists, no checkout
all/target/vault-work/META-INF/vault/filter.xml already exists, no checkout
all/target/vault-work/META-INF/vault/properties.xml already exists, no checkout
all/target/vault-work/META-INF/vault/settings.xml already exists, no checkout
core/.project already exists, no checkout
core/target/classes/META-INF/MANIFEST.MF already exists, no checkout
core/target/classes/OSGI-INF/com.xx.aem.core.filters.CorrelationLoggingFilter.xml already exists, no checkout
core/target/classes/OSGI-INF/com.xx.aem.core.filters.LinkHeaderFilter.xml already exists, no checkout
core/target/classes/OSGI-INF/com.xx.aem.core.filters.LoggingFilter.xml already exists, no checkout

结束于:

ui.content/target/vault-work/META-INF/vault/settings.xml already exists, no checkout
ui.frontend/.project already exists, no checkout
ui.tests/.project already exists, no checkout
error: could not restore untracked files from stash
The stash entry is kept in case you need it again.

令人惊讶的是,当查看本地代码的状态时,它似乎确实创建了新文件。但没有任何更改的文件存在。所以错误说它无法恢复未跟踪的文件,但它似乎可以恢复,但它没有恢复我对现有文件所做的更改。

摘要:

  1. 我已更改主文件和新文件(未跟踪的文件)。
  2. 我做了“git stash -all”
  3. 这让我回到了主界面,没有进行任何更改。
  4. 然后我执行了“git pop”,期望回到 1。
  5. 无缘无故出现数千个错误。
  6. 我对文件所做的任何更改都不存在。
  7. 我的新的未跟踪文件确实存在,尽管它说无法恢复它们。

如何取回对现有文件所做的所有更改?

感谢任何帮助。

注意:我最近注意到 git stash --all (在一篇文章中建议使用它来存储跟踪和未跟踪的文件)也可能(奇怪地)存储忽略的文件 - 这可能是问题的症结所在。

如果我这样做

git stash show

我明白了

bob@MacBook-Pro eyas-web % git stash show
.../aem/core/filters/xx.java | 25 ++-
.../models/xxx/response/x.java | 18 --
.../xx/aem/core/models/xx/Player.java | 14 ++
.../xx/aem/core/services/xx.java | 31 +++
.../services/impl/xx.java | 2 +-
.../core/services/impl/xx.java | 6 +
.../aem/core/services/impl/xx.java | 212 ++++++++++++++++++++-
pom.xml | 18 --
8 files changed, 282 insertions(+), 44 deletions(-)

我需要弄清楚如何从存储中恢复“8 个已更改的文件”,以及似乎已恢复的新的未跟踪文件。

一个想法可能是尝试删除所有被忽略的文件,然后再次执行 git stash pop 。然而,查看“git clean -xdf”的手册页,它并没有说 -x 是否也会删除必要的 git 文件以及我们添加的被忽略的文件(例如项目配置文件)。

有什么想法可以解决这个问题吗?

我注意到这篇文章:How do you stash an untracked file?

其中表示:“git stash -u 警告,如果您的 gitignore 文件中有任何目录/条目,执行此操作将永久删除您的文件。”

这看起来很糟糕,可能与我的问题有关。

最佳答案

如何取回对现有文件所做的所有更改?

我会尝试git stash branch :

  1. 备份整个目录(以防万一)。
  2. git stashbranch my-stash-in-a-branch 这应该会带回您 stash 的所有内容。即使 git stash --all 中未跟踪/忽略的内容也将被恢复。
  3. 现在执行诸如 git rebase -i master 之类的操作来与您的主线同步。

PS:我为你祈祷,你的藏品还没有空。在不清楚的情况下,优先选择 git stash apply 而不是 git stash pop

关于git pop 失败,错误为 "error: could not restore untracked files from stash",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73663716/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com