cocos / cocos-engine

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
https://www.cocos.com/en/creator
Other
8.87k stars 2.06k forks source link

default .gitignore file content wrong. #17018

Open smallmain opened 6 months ago

smallmain commented 6 months ago

Cocos Creator version

3.8.2

System information

MacOS

Issue description

#///////////////////////////
# Cocos Creator 3D Project
#///////////////////////////
library/
temp/
local/
build/
profiles/
native

Only folders under the project root should be ignored. Names like native are very common and may cause extension files and project files to be accidentally ignored.

Relevant error log output

No response

Steps to reproduce

.

Minimal reproduction project

No response

minggo commented 6 months ago

I think it is because engine source code also has the folder named native, and the generated folder also has a native folder.

smallmain commented 6 months ago

I think it is because engine source code also has the folder named native, and the generated folder also has a native folder.

Okay.

In my case, my engine plugin will have the native directory because the installed npm package has a directory with that name, but the engine plugin will have to add node_modules to Git if it's going to work properly because of this unresolved issue: https://github.com/cocos/cocos-engine/issues/16896

Then, the project directory also has a directory with this name:

minggo commented 6 months ago

May be you should ask the plugin user to remove it. As most developers will not modify engine codes, so i think it is reasonable to keep it.

smallmain commented 6 months ago

May be you should ask the plugin user to remove it. As most developers will not modify engine codes, so i think it is reasonable to keep it.

What? no!

The engine code has not been modified!

Here I assume that the engine plug-in depends on a cross-platform file system implementation module. Because of the gitignore file, users cannot simply put plugins into version management.

This situation is not uncommon!

minggo commented 6 months ago

In my project, the .gitignore is

#///////////////////////////
# Cocos Creator 3D Project
#///////////////////////////

/library/
/temp/
/local/
/build/
/profiles/
/native/engine/android/**/*/assets

It is different from you.

smallmain commented 6 months ago

I tried creating a new project using 3.8.3 and the .gitignore is:

#///////////////////////////
# Cocos Creator 3D Project
#///////////////////////////
library/
temp/
local/
build/
profiles/
native
#//////////////////////////
# NPM
#//////////////////////////
node_modules/

#//////////////////////////
# VSCode
#//////////////////////////
.vscode/

#//////////////////////////
# WebStorm
#//////////////////////////
.idea/

The same problem just occurred in the my team. I added the l10n plug-in to the project and submitted it to git. An error occurred after the team member pulled it.

image

because gitignore ignores node_modules, but the current plug-in system cannot automatically install plugin's dependencies.

I think the default gitignore file needs to be completely improved, and try to only ignore directories that Creator must ignore, rather than hitting it on a large scale.

In addition, Some settings of Creator itself are also ignored. things like build settings should be synchronized by default.

minggo commented 5 months ago

@wuzhiming it seems this file is generated by editor, please take a look.