Code Monkey home page Code Monkey logo

ue5-gitignore's Introduction

ue5-gitignore

A correct git setup example with git-lfs for Unreal Engine 5 (and 4) projects.

Version Management Design and Conventions

This template implies some conventions to be used correctly, which are discussed below. You should be able copy and paste them into your project's README.md if you want to.

If you are using git with Unreal Engine, you might want to also enable One File Per Actor feature, as it provides a more atomic level versioning flow.

Repo Structure

Repository structure is fixed, and it only has a few toplevel directories. Every other directory or file is ignored.

  • /Source
  • /Config
  • /Plugins
  • /Content
  • /RawContent

git-lfs management rules are mostly defined for file types, and not paths, however there can entire paths marked to be managed by git-lfs. Without a special note, expect only type-based rules apply to a directory.

/Source

C++ source code is stored under the /Source path. As with most other directories, this directory is managed by standard git (and not git-lfs). That means no blobs. Do not put here any .dlls, .exes, .zips and other binaries. Only text files are allowed. Generated text files can reside in the local /Source dir, but should be ignored by git with additional entries in .gitignore.

/Config

Engine and game config files.

/Plugins

Game plugins. Every plugin lives in a subdirectory of the /Plugins dir. A plugin internal directory structure is not strictly documented, so there are no assumptions on how a plugin is structured. It may be useful to use git submodules to manage plugins in a more robust manner. It is expected that each plugin will have it's own .gitignore file in it's subdirectory, as well other required specific git tweaks.

/Content

Game assets in Unreal Engine formats, .uasset and .umap. Only those two file types are allowed, everything else is ignored.

/RawContent

This directory is managed entirely by git-lfs.

/RawContent is a directory where you store assets in their source formats, in contrast to /Content, where assets are stored in the engine format (after the import). Having an asset in a source format is useful when you're still making updates to it. It may be a good idea to also have separate repos for managing work-in-progress assets (maybe in smaller collections or even idividually).

How to use

  1. Set up git and git-lfs.
  2. Copy .gitignore and .gitattributes to your project.

Caveats

Take special care when working with plugins. Plugin structure is not very well defined, so you will be able to mess the git repo up with big files if you commit them to a plugin directory.

Contributing

Rules

This repo uses UNIX-style line endings and UTF-8. Make sure every line in a text file is ended with a newline (especially the last line in a file, git should notify you if you've lost it). This is due to how lines are defined. Feel free to search the web for more info on why to end every file with an "empty line".

How to contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

ue5-gitignore's People

Contributors

mozgiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ue5-gitignore's Issues

hello

Hello, I'm new to UE4, if you could help me and upload the program or send it to me it would be very helpful, the problem is that in my country it can not be downloaded and I'm really interested.

Raw Content

Howdy,

First off thank you very much for the info on git files. I'm still getting my feed wet on using GIT for source/revision control on projects.

I'd suggest you keep raw source (Raw content) outside your unreal specific project files.
Source like audio, art, meshes, textures, anim, etc are not platform specific. They can be distributed among various projects, platforms, etc
Have your Source (art source) live on the same level as your unreal project directory but not embedded in the unreal project directory. Or even above at root.
This way your future proof, any new project directories made later, or change to another engine, etc
You can safely share and distribute your raw source to any of those directories.
Its probably also better to keep a different repo for raw source altogether.
I even have a source at utmost top level, that distributes to all my projects. I also have source unique to projects but even that lives at higher directory level. Just so i can reuse and distribute among any project directory.
(Small bonus when you keep them outside your unreal project dir you can simply call it source. Instead of raw content.)

Anyway just food for thought.
Kind Regards and thank you again,
Ing

[UE5] Whether Content/_*_ folders should be excluded?

Good day! I've been configuring my UE5 project and when went to commit project files to git (decided to go with your ignore and attributes files) I've noticed two extra folders is Content, which seem to be containing some auto generated assets, related to map - their names are just [A-Z0-9]{;22}.uasset and and folder structure are just some autogen folders as well. I've been wondering, whether i should include them, or if they're auto generated by some build process they can be ignored?
image
image

Why are You not including the "Content" folder?

At least here in my project, "content" is the main folder with assets I use, but since I'm new at this, just wondering if You are not including content folder how do You handle this with the rest of the team:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.