【问题标题】:Cannot unstage branch无法取消暂存分支
【发布时间】:2015-07-02 10:05:32
【问题描述】:

我现在对我的分支的分期很困惑。

我在一个叫lazy-load的分支上

Git status 显示:

nothing to commit, working directory clean

git diffgit diff --cached 什么都不显示。

但是如果我推送到origin lazy-load,会推送大量文件,几乎是整个repo,包括之前从repo中删除的文件。

我哪里错了?我试过git rm --cachedgit reset HEAD

我似乎无法取消暂存文件,甚至看不到分支上的暂存文件。

【问题讨论】:

  • 尝试git reset --hard <commit> 将您的 HEAD 指针重置为先前的提交并丢弃此后的所有更改, rm --cached 不会取消暂存文件。它分阶段从 repo 中删除文件并将文件留在工作树中,留下一个未跟踪的文件。 stackoverflow.com/questions/6919121/…
  • 通过上述评论,我能够解决问题。

标签: git git-branch


【解决方案1】:

尝试git reset --hard <commit> 将您的 HEAD 指针重置为先前的提交并丢弃此后的所有更改,git rm --cached 不会取消暂存文件 - 它会暂存从存储库中删除文件并将文件保留在您的工作中树,给你留下一个未跟踪的文件。 *

git cheat sheet

*related post

【讨论】:

    【解决方案2】:

    git status 只会显示未提交的更改,git diff 也一样。除非您没有设置快速转发,否则它可能会显示您的分支和远程等效项之间有多少提交差异。

    要与您的分支的远程版本进行比较,您应该进行获取并与远程进行比较,以查看您实际推送的内容:

    git fetch --all
    git diff [branch] origin/[branch]
    

    【讨论】:

    • 刚刚更新了帖子。由于某种原因,我从 repo 中删除的文件仍处于暂存状态。
    猜你喜欢
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2014-02-28
    • 2020-05-15
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多