git stash抛出错误:No local changes to save

10 浏览
0 Comments

git stash抛出错误:No local changes to save

我在本地分支中添加了一个新文件。运行命令git status后,得到以下输出:\n

# 在分支MyLocBranch上
# 未跟踪的文件:
#   (使用“git add …”将其包含在提交的内容中)
#
#   mypath/nextDir/myfile.py
nothing added to commit but untracked files present (use "git add" to track)

\n这没问题,因为我有未跟踪的文件,并且在终端中以红色显示。\n现在,为了暂存这些更改,我运行了git stashgit stash save \"some message\"命令。但是我得到了错误信息No local changes to save,这很奇怪。这些更改应该已经被暂存了。

0
0 Comments

问题:git stash throws error No local changes to save

原因:由于新创建的文件是未跟踪的文件,git没有需要保存的内容。

解决方法:根据git文档的描述,当你想记录当前工作目录和索引的状态,但又想回到一个干净的工作目录时,可以使用git stash命令。该命令将保存你的本地修改,并将工作目录恢复到与HEAD提交相匹配的状态。所以,为了实现你的愿望,每当你创建一个新文件时,你需要立即使用"git add"命令将该文件暂存以便提交。这样git就会将它视为你的修改并将其添加到stash中。

另外,如果你在工作的某个部分处于混乱状态,想要切换到其他分支进行其他工作,但又不想因为半成品的工作而进行提交,可以使用git stash命令。该命令将保存你的工作目录中的修改和暂存的更改,并将其保存在一个未完成更改的堆栈中,以便随时重新应用。

此外,如果在使用git checkout <branch-name>命令时出现错误消息:"The following untracked working tree files would be overwritten by checkout"(并列出了未跟踪的文件),这意味着你在另一个分支上有相同的文件。在当前分支中,该文件尚未提交,但在其他分支中已经提交。因此,为了避免这些问题,创建新文件时立即使用"git add"将其暂存以进行提交是一个良好的行为。

0
0 Comments

git stash命令默认不保存未跟踪的文件。如果要同时保存未跟踪的文件,可以使用--include-untracked(或-u)选项。

然而,有时候当我们运行git stash命令时,可能会遇到错误提示"git stash throws error No local changes to save",即没有本地更改需要保存。这个问题的出现通常有两个原因。

首先,该错误可能是因为当前工作目录中没有进行任何更改。因为git stash命令是用来保存本地更改的,如果没有进行任何更改,就没有需要保存的内容,所以会报错。解决这个问题很简单,只需确保在运行git stash命令之前进行了相应的更改即可。

另一个可能的原因是git stash命令默认不保存未跟踪的文件。如果当前工作目录中只有未跟踪的文件没有进行任何更改,git stash命令也会报错。为了解决这个问题,可以使用--include-untracked(或-u)选项。该选项告诉git stash命令同时保存未跟踪的文件。

所以,当我们遇到"git stash throws error No local changes to save"错误时,首先需要确保在运行git stash命令之前进行了相应的更改。如果仍然遇到该错误,可以尝试使用--include-untracked(或-u)选项来保存未跟踪的文件。

0