在 Unity 中创建的文件不会自动添加到 git (Rider)

Created files in Unity are not added to the git (Rider) automatically

当我在 Unity 编辑器中创建文件或将已创建的文件移动到另一个文件夹等时 - 默认情况下这些文件不会添加到 git。我必须手动将它们添加到 Rider IDE 中的 git。当我想重构项目结构或添加一些预制件和资产等时,这变得非常烦人

在 Rider Settings -> Version Control -> Confirmation 我尝试了 "silent: and "show options..." 选项,但无济于事。此外,如果我在 Rider 项目结构中创建文件,它将默认添加.

git忽略文件:

# This .gitignore file should be placed at the root of your Unity project directory

/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/

# Never ignore Asset meta data
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# TextMesh Pro files
[Aa]ssets/TextMesh*Pro/

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

git status 命令(.meta 文件被添加到 git 当我标记整个文件夹要添加到 git 有这个问题):

        new file:   Assets/Scripts/CatLikeLegacy.meta
        new file:   Assets/Scripts/CatLikeLegacy/EdgeVertices.cs.meta
        new file:   Assets/Scripts/CatLikeLegacy/FireTrail.cs.meta


... etc. meta files

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

        .idea/
        .vscode/
        Assets/Build.meta
        Assets/Build/provinces.png.meta
        Assets/Build/provincesReference.png.meta
        Assets/Materials.meta

...etc ignored files .meta in common

创建或移动文件时 git 应自动跟踪此文件。

更新: 尝试在 Unity 中创建新的干净项目并从 Rider 添加 git 系统 - 这个问题仍然存在,Rider 不会自动跟踪新文件(标记为红色)。

正如我从 https://youtrack.jetbrains.com/issue/IDEA-52058 @evolutionxbox 看到的那样,JetBrains 产品尚未实现此功能 - 这使得此 IDE 中的统一工作流程非常烦人。很遗憾。

我已经将 Unity 与 Rider 结合使用,但我目前不知道使用 Rider 原生功能的解决方案。

但是您可以通过使用 CLI(命令行界面)并一次添加所有文件(而不是一个接一个地添加)来解决该问题:

git add --all

这确实 'require' 你有一个体面的 .gitignore 所以你不包括膨胀的 Unity 和 Rider 文件。

这是一个例子:.gitignore

您可能需要根据自己的喜好稍微定制一下;您可以通过使用 git status 命令轻松检查如果您使用 git add --all 将包含哪些文件,该命令应该为您提供必要的信息以识别您需要添加到 .gitignore 的排除模式

替换

!/[Aa]ssets/**/*.meta

来自

!/[Aa]ssets/**/[\w\ \d\.]*.meta

根据我发现的this link。它说

Files can include spaces, which the current pattern doesn't capture. Example: Assets/Plugins/My Plugin.meta