git“lfs”和“hooks”文件夹应该在 .git 文件夹之外吗?

问题描述 投票:0回答:2

我已经开始在 Unity 项目中使用 git-lfs。安装 git-lfs 并提交一些资源文件后,一切似乎都运行良好。现在我注意到我的工作目录中有名为

lfs
hooks
的文件夹,它们不在
.git
目录中。当我执行
git status
时,git 会将这些文件夹中的文件列为未跟踪的新文件。这不是它应该的工作方式,对吧?有什么想法可能导致这种情况以及我应该检查什么吗?

这里是输出:

$ git status
On branch master
Your branch is up to date with 'origin/master'.

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

        deleted:    Assets/Scripts/PlayerController/FOVKick.cs
        deleted:    Assets/Scripts/PlayerController/LerpControlledBob.cs

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

        deleted:    Assets/Scripts/PlayerController/FOVKick.cs.meta
        deleted:    Assets/Scripts/PlayerController/LerpControlledBob.cs.meta

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        hooks/
        lfs/

这是项目根目录下的.gitattributes文件:

## Unity ##

*.cs diff=csharp text
*.cginc text
*.shader text

*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf


## git-lfs ##

# Image
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text

# Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text

# Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text

# 3D Object
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text

# Other
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
git git-lfs
2个回答
5
投票

找到罪魁祸首

这是由 IDE 使用未安装 git-lfs 的不同 git 可执行文件引起的。


0
投票

为了扩展 Jawap 的答案,由于 PATH 太长,Visual Studio 可能不使用您的 git 安装(见此处)。在我的例子中,将

C:\Program Files\Git LFS
环境变量移动到列表的开头就足够了,现在当我通过 Visual Studio 运行程序时,这两个文件夹在
.git
目录中创建。

© www.soinside.com 2019 - 2024. All rights reserved.