【问题标题】:Git-branch switching all the uncommited changes are goneGit-branch 切换所有未提交的更改都消失了
【发布时间】:2014-10-30 12:52:24
【问题描述】:

我在本地 git 存储库中对这么多文件进行了如此多的更改。

但是当我使用 mac Git-Client 切换分支而不提交更改时,会出现一个警告窗口,提示存在未提交的更改,因此它将中止操作。

我以为不提交就无法切换到其他分支。但是发生的事情是我所有的变化都消失了。

我使用git status终端看到了状态,它的响应是

在分支分支名称上您的分支是最新的'origin/branchname'。

没有什么要提交的,工作目录干净

我试图知道 Git-Client 是否使用 git stash 将其存储为 stash 并且响应是

没有要保存的本地更改

我无法恢复该分支的未提交更改!

【问题讨论】:

    标签: git-branch git-commit git-stash github-for-mac git-status


    【解决方案1】:

    我想指出,您应该使用 git stash list 来查看 git 客户端将任何内容放入存储中。 git stashgit stash save

    的简写

    【讨论】:

    • @ferengee- 谢谢,我想知道如何恢复丢失的更改!
    • 如果您隐藏了任何更改,并且希望将它们应用到当前分支。使用@jcragun 指出的“git stash pop”(参见:git-scm.com/docs/git-stash
    • 我没有使用 git-stash 存储任何东西......git客户端不会自动将更改保存在我们可以使用一些 git 命令访问它的地方吗?
    【解决方案2】:

    根据blog,您必须在 git stash 之前将任何新文件添加到索引中。

    在开始 git stash 之前,请确保添加到工作目录的任何新文件都已添加到索引中:git stash 不会在工作目录中存储(保存)文件,除非正在跟踪文件(某些版本的文件已添加到索引中)。

    This question 似乎也很相关,尤其是答案和 cmets。

    “你需要一个干净的状态来改变分支。”仅当分支更改影响“脏文件”时才为真。

    然后这个

    对于 stash 方法,我输入了“git stash save”、“git checkout otherbranch”,最后输入了“git stash pop”。

    我不熟悉 GitHub Mac 客户端,但它应该在下面使用 git 命令,这就是它中止的原因。文件脏时切换分支的唯一方法是git checkout -f <branch>

    我测试了 GitHub Mac 客户端,发现它可以在切换分支时神奇地自动存储。这是confirmed in the documentation

    【讨论】:

    • 是否可以恢复丢失的更改?
    • 根据你的说法听起来不太好。但是,我真的很惊讶它说中止操作但仍然覆盖了您的更改。我会在我的机器上做一些测试,看看会发生什么。
    • 我厌倦了重现错误,我可以按顺序执行两次,但之后我无法重现错误
    • 我刚刚在 repo 上对此进行了测试,并没有收到您所说的警告消息。我能够在不保存更改的情况下成功地在分支之间移动,并且没有丢失任何工作。每当切换分支时,GitHub 客户端都会做一些隐藏技巧。
    • 即使我也无法重现它..我所知道的是当时 GitClient 出了问题..
    【解决方案3】:

    我也遇到了同样的问题。我是 git 新手...我创建了一个分支,第二天发现我没有在我创建的分支中工作。我的更改未提交。我确实尝试过提交它们(git add . 和 git commit -m "...")但我得到“你已经是最新的了,没有什么可以提交的。”我想这可能是因为我第二天的工作不在分支上。在这一点上,我的工作在那里,只是没有承诺。所以我将分支切换到我的初始分支。当我这样做时 - 项目更新了,我所有的工作都消失了。 git 存储列表 什么都不返回

    切换回 master,没有我的更改。我的分支没有我的更改...我只是丢失了大约一天的代码。

    我唯一记得的就是当我做 git branch 的时候 它将 HEAD 列为我所在的位置。

    我想我的工作已经消失了,我不确定我做错了什么......我意识到我从第一天就开始在一个分支工作,我的错误是没有确保我在那天仍然在那个分支2...但是在某个地方,我在一个无法提交的地方编写代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2016-08-07
      • 2013-11-07
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多