This article will cover the initialization of the project,version management, code and settings organization, and keeping Platform up-to-date version.
In order to easily follow the evolutions of eZ Platform, the best way is to use the meta-repositories, such as ezsystems/ezplatform. They're meant to be publicly open, so that they can be used as a basis for projects, both on Community or Enterprise editions.
The first thing is to initialize the project itself, using git. I suggest you add your remote first, so that master is actually your own master:
mkdir my-project
cd my-project
git init
Next, we will add an eZ Platform meta-repository as a remote, and fetch (-f)the tags from it:
git remote add --tags -f ezplatform https://github.com/ezsystems/ezplatform.git
We will now merge the contents of the latest stable tag into our master branch. At the time of writing, v0.11.0:
git merge --no-ff v0.11.0 -m "Installed ezsystems/ezplatform v0.11.0"
I use --no-ff in order to have a clear indication of what was merged. A custom message makes it easier to recall what was done exactly (installing, updating, reverting...). This gives us this kind of clear grouping in the log:
* b76ba1c - (HEAD, master) Installed ezplatform v0.11.0 (Fri, 25 Sep 2015 17:35:34 +0200) <Bertrand Dunogier>
|\
| * 2c63f45 - (tag: v0.11.0, ezplatform/release-2015.07) Added composer.lock for 2015.07 (Mon, 14 Sep 2015 13:32:42 +0200) <Bertrand Dunogier>
| * 550450b - Updated composer.json for 2015.07 release (Fri, 11 Sep 2015 21:03:47 +0200) <Bertrand Dunogier>
| * decfa71 - Merge pull request #38 from ezsystems/ezp24774-bdd_console_siteaccess_matching (Fri, 11 Sep 2015 15:16:40 +0200) <Bertrand Dunogier>
| |\
You now have your very own ezplatform instance you can work from.
The src folder is where your project's source code (bundles) will go, and the contents of the ezpublish folder can be modified freely. Keep in mind that changes to versioned files (config.yml, security.yml, AppKernel.php) might conflict when you upgrade to new versions. However, we update those rather carefully, and unless you change the whole files, we should all be safe.
You can very easily install new releases of ezplatform when they get tagged.
git fetch ezplatform
git merge --no-ff v0.11.1 -m "Updated to ezplatform v0.11.1"
This will get the changes between the last version you merged (0.11.0) on top of your current code. You might get a few conflicts, but nothing unmanageable. You will get one on composer.lock, and there isn't much we can do about that. Just run git checkout --ours, it will be updated after the merge anyway. The most common real conflicts would be on composer.json, EzPublishKernel.php and a couple configuration files.
Once the conflicts are fixed, update the dependencies with composer update.