我是 git 新手,如果这个问题已经得到解答,我很抱歉。我很难找到这个问题的答案。
我想忽略一组以前从未提交过的文件进行提交,并使用 github 应用程序选择它们并忽略它们。我切换到另一个分支一段时间,当我回到我的分支时,我忽略的文件不见了。
这些文件被删除了吗?
我使用 git checkout 切换回分支,然后使用 git status --ignored 。我丢失的文件不存在。
我是 git 新手,如果这个问题已经得到解答,我很抱歉。我很难找到这个问题的答案。
我想忽略一组以前从未提交过的文件进行提交,并使用 github 应用程序选择它们并忽略它们。我切换到另一个分支一段时间,当我回到我的分支时,我忽略的文件不见了。
这些文件被删除了吗?
我使用 git checkout 切换回分支,然后使用 git status --ignored 。我丢失的文件不存在。
您可以通过使用git reflog --all
获取 SHA 代码来执行此操作,当 Github 应用程序在切换到另一个分支之前自动隐藏您忽略的文件时。请参阅https://stackoverflow.com/a/8865242/2970321。
例如,我/pr/364
使用应用程序 (SHA ) 获取了一个拉取请求 ( 2ba129d
)。在我切换回之前gh-pages
,它隐藏了我忽略的文件(SHA 36edfc6
)。
所以要恢复,我需要做的就是:
git checkout 36edfc6
我的文件神奇地重新出现了,我能够安全地将它们手动存放在其他地方,然后再切换回gh-pages
。
git
不会删除它不关心的文件,除非明确告知这样做(checkout -f
在某些情况下通过签出或clean
)。由于git
对他们一无所知,它也无法恢复他们。git stash
在四处走动和做可能有害的事情之前使用。仔细考虑哪些文件进入.gitignore
,将所有非自动生成的文件添加到版本控制中。
看起来您忽略了 branch 中的文件A
,然后切换到 branchB
但没有忽略那里的文件。
如果您只忽略 branch 中的文件A
而不忽略 branch 中的文件,那么当从 切换回B
时它们会被删除。但是,如果您从 切换回 ,它们应该会重新出现。B
A
A
B
如果您从任何分支结帐X
到Y
,这是正常的 git 行为,所有不在分支中Y
但在分支中的文件X
都将被删除。如果一个文件在 中被忽略,Y
但在 中没有X
,那么你就有这种情况。
为了防止您的文件被删除,您可以将它们添加到.gitignore
您其他分支的文件中B
。