4

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

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

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

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

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

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

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

没有要保存的本地更改

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

4

3 回答 3

3

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

于 2014-09-07T19:47:27.897 回答
2

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

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

这个问题似乎也很相关,尤其是答案和评论。

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

然后这个

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

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

我测试了 GitHub Mac 客户端,发现它在切换分支时神奇地自动存储。这在文档中得到证实

于 2014-09-05T17:36:41.857 回答
0

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

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

我唯一记得的是,当我执行 git branch 时,它会将 HEAD 列为我所在的位置。

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

于 2016-03-02T16:38:41.457 回答