【问题标题】:git stash throws error No local changes to save [duplicate]git stash 抛出错误没有要保存的本地更改[重复]
【发布时间】:2016-11-07 02:59:09
【问题描述】:

我已将一个新文件添加到我的本地分支。在运行命令git status 时,它会给出以下输出:

# On branch MyLocBranch
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   mypath/nextDir/myfile.py
nothing added to commit but untracked files present (use "git add" to track)

这很好,因为我有未跟踪的文件,它在终端中显示为红色。

现在为了隐藏这些更改,我运行了命令 git stashgit stash save "some message"。但我收到错误No local changes to save,这很奇怪。更改应该已被隐藏。

【问题讨论】:

  • @Matt 谢谢。这就是我要找的东西!
  • 因此,您可以将答案标记为已接受的答案,如果您愿意,也可以投票赞成,即使您的问题被标记为重复

标签: git


【解决方案1】:

默认情况下git stash 不保存未跟踪的文件。

为了同时存储未跟踪的文件,您可以使用--include-untracked(或-u)选项。

【讨论】:

    【解决方案2】:

    stash 用于保存已知/跟踪文件中的更改。由于这是一个新的/未跟踪的文件,git 没有什么可保存的。

    注意: 即使您切换到不同的分支,此文件仍将保留在您的本地目录中。

    【讨论】:

    • 但是 git 文档说,当你想记录工作目录和索引的当前状态,但又想回到一个干净的工作目录时,请使用 git stash。该命令保存您的本地修改并恢复工作目录以匹配 HEAD 提交。所以有点混乱
    • 还有一个来自 git 文档,通常,当你一直在处理你的项目的一部分时,事情处于混乱状态,你想切换一下分支来处理其他事情.问题是,你不想提交完成了一半的工作,这样你以后可以回到这一点。这个问题的答案是 git stash 命令。 Stashing 获取工作目录的脏状态(即修改后的跟踪文件和暂存更改)并将其保存在未完成的更改堆栈中,您可以随时重新应用
    • 为了实现你的愿望,每当你创建一个新文件时,你需要使用“git add”来暂存文件以便立即提交。然后 git 会将其理解为您的更改并添加到 stash 中。
    • 非常感谢!!!! :)
    • 这就是我的想法,但是当我使用 git checkout &lt;branch-name&gt; 时,我收到消息:“以下未跟踪的工作树文件将被结帐覆盖”(它列出了未跟踪的文件)
    猜你喜欢
    • 2017-10-18
    • 2015-12-04
    • 1970-01-01
    • 2013-09-15
    • 2019-03-05
    • 2021-10-25
    • 2020-12-11
    • 2013-11-30
    相关资源
    最近更新 更多