9

我是 git 新手,如果这个问题已经得到解答,我很抱歉。我很难找到这个问题的答案。

我想忽略一组以前从未提交过的文件进行提交,并使用 github 应用程序选择它们并忽略它们。我切换到另一个分支一段时间,当我回到我的分支时,我忽略的文件不见了。

这些文件被删除了吗?

我使用 git checkout 切换回分支,然后使用 git status --ignored 。我丢失的文件不存在。

4

3 回答 3

5

您可以通过使用git reflog --all获取 SHA 代码来执行此操作,当 Github 应用程序在切换到另一个分支之前自动隐藏您忽略的文件时。请参阅https://stackoverflow.com/a/8865242/2970321

例如,我/pr/364使用应用程序 (SHA ) 获取了一个拉取请求 ( 2ba129d)。在我切换回之前gh-pages,它隐藏了我忽略的文件(SHA 36edfc6)。

查找丢弃的存储的 SHA 代码

所以要恢复,我需要做的就是:

git checkout 36edfc6

我的文件神奇地重新出现了,我能够安全地将它们手动存放在其他地方,然后再切换回gh-pages

于 2015-07-05T20:54:03.417 回答
1

git不会删除它不关心的文件,除非明确告知这样做(checkout -f在某些情况下通过签出或clean)。由于git对他们一无所知,它也无法恢复他们。git stash在四处走动和做可能有害的事情之前使用。仔细考虑哪些文件进入.gitignore,将所有非自动生成的文件添加到版本控制中。

于 2013-03-16T18:39:34.243 回答
1

看起来您忽略了 branch 中的文件A,然后切换到 branchB但没有忽略那里的文件。

如果您只忽略 branch 中的文件A而不忽略 branch 中的文件,那么当从 切换回B时它们会被删除。但是,如果您从 切换回 ,它们应该会重新出现。BAAB

如果您从任何分支结帐XY,这是正常的 git 行为,所有不在分支中Y但在分支中的文件X都将被删除。如果一个文件在 中被忽略,Y但在 中没有X,那么你就有这种情况。

为了防止您的文件被删除,您可以将它们添加到.gitignore您其他分支的文件中B

于 2019-04-05T11:30:37.393 回答