2017-10-12 464 views
2

如何清洁回购,如果筹备的文件标记为后Git的错误:遇到7文件(S)本来应该是三分球,但没有

git reset --hard

修改

我得到

Encountered 7 file(s) that should have been pointers, but weren't:

git clean -fdx

没有帮助过

+0

这个错误信息听起来像你从'git-lfs'中得到的东西。我实际上并没有使用git-lfs,所以我不确定这个(也不知道该怎么做),但是如果是这样的话,也许git-lfs标签会很好。 – torek

+0

是的,使用lfs –

+0

@KateZz你有没有找到答案?我们也使用git-lfs,并且只检查了一个分支并得到了那个错误。 – buzzsawddog

回答

0

当你这样做包含应该已经被文件吨结账这种情况按照.gitattributes中的规定被LFS拖垮,但不知何故它们直接被提交。可能的原因是你有另一个程序管理你的仓库,比如git GUI或者IDE。

要解决此问题,请确保您已将文件提交为LFS指针。这应该与使用git add一样简单。在提交之前,您可以使用git lfs status来检查您的工作。 git lfs ls-files将显示LFS正在管理的文件。

git lfs status有误导性,因为它会在确实列出所有更改时读取Git LFS objects to be committed。您要查找的是您希望LFS跟踪的文件读取类似(LFS: c9e4f4a)(Git: c9e4f4a -> LFS: c9e4f4a)而不是(Git: c9e4f4a)

举例来说,我发现这是通过Xcode 9.2添加图像资产时遇到的一个问题,我添加了它自动添加的“CalendarChecked.png”。

$ git status 
Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

    new file: Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png 

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png 

$ git lfs status 

Git LFS objects to be committed: 

    Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png (Git: c9e4f4a) 

Git LFS objects not staged for commit: 

    Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png (File: c9e4f4a) 

$ git add Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png` 
$ git lfs status 

Git LFS objects to be committed: 

    Empty/Empty/Assets.xcassets/CalendarChecked.imageset/CalendarChecked.png (LFS: c9e4f4a) 

Git LFS objects not staged for commit: 

正如你毫无疑问的经历,这是令人沮丧的,因为这些文件出现无处不能阻止你做结账。只要你藏起你的改变,他们就会回来!如果你遇到这种情况,一个快速解决方法是在临时分支上提交这些更改,以便可以再次签出。

相关问题