无法取消暂存分支
Posted
技术标签:
【中文标题】无法取消暂存分支【英文标题】:Cannot unstage branch 【发布时间】:2015-07-02 10:05:32 【问题描述】:我现在对我的分支的分期很困惑。
我在一个叫lazy-load
的分支上
Git status
显示:
nothing to commit, working directory clean
git diff
和 git diff --cached
什么都不显示。
但是如果我推送到origin lazy-load
,会推送大量文件,几乎是整个repo,包括之前从repo中删除的文件。
我哪里错了?我试过git rm --cached
和git reset HEAD
。
我似乎无法取消暂存文件,甚至看不到分支上的暂存文件。
【问题讨论】:
尝试git reset --hard <commit>
将您的 HEAD 指针重置为先前的提交并丢弃此后的所有更改, rm --cached 不会取消暂存文件。它分阶段从 repo 中删除文件并将文件留在工作树中,留下一个未跟踪的文件。 ***.com/questions/6919121/…
通过上述评论,我能够解决问题。
【参考方案1】:
git status
只会显示未提交的更改,git diff
也一样。除非您没有设置快速转发,否则它可能会显示您的分支和远程等效项之间有多少提交差异。
要与您的分支的远程版本进行比较,您应该进行获取并与远程进行比较,以查看您实际推送的内容:
git fetch --all
git diff [branch] origin/[branch]
【讨论】:
刚刚更新了帖子。由于某种原因,我从 repo 中删除的文件仍处于暂存状态。【参考方案2】:尝试git reset --hard <commit>
将您的 HEAD 指针重置为先前的提交并丢弃此后的所有更改,git rm --cached
不会取消暂存文件 - 它会暂存从存储库中删除文件并将文件保留在您的工作中树,给你留下一个未跟踪的文件。 *
git cheat sheet
*related post
【讨论】:
以上是关于无法取消暂存分支的主要内容,如果未能解决你的问题,请参考以下文章