签出不同的分支时删除 git 中未暂存的、未提交的文件

Remove unstaged, uncommitted files in git when checking out a different branch

我删除了特定分支的本地和远程分支

git branch -d branchName
git branch --delete --remotes origin/branchName

当我签出另一个分支时,我在 运行 git status 时仍然看到 untracked/uncommitted 文件。

这些文件没有任何我想保留或暂存或提交的更改。当我 运行 git status 在不同的分支

时,我不想看到他们坐在该区域
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   ../../../../path/to/folder/file.html
    modified:   ../../../../path/to/folder/file.js

我想在 运行 git status 我结帐的任何分支机构上看到这个

On branch proj/branch/#
Your branch is up to date with 'origin/proj/branch/#'.

nothing to commit, working tree clean

有没有办法做到这一点,如果有,是怎么做到的?

通常,要撤消对所有文件的更改并将它们恢复到上次提交的状态,您会这样做:

git reset --hard

(此处隐含HEAD)(doc)

警告但是:这是不可撤销的。

您也可以只 git stash,这样也可以删除更改,但如果您想稍后取回它们或只是检查它们,您可以使用简单的git stash show <stashRef>,或 git apply <stashRef>,其中 <stashRef> 可通过 git stash list.

找到

为了回答您关于存储的评论,如果您存储了一些东西并且不再需要它,您有两种清理旧存储条目的方法:

# global
git stash clear

# or specific
git stash drop <entryRef>

(其中 <entryRef> 是通过 git stash list 找到的)