Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Installing from Git clones for study

How a developer student installs Exponential as Git clones with their full history, following Develop with Git - the one Composer setting, cloning the kernel, your own branch, installing the site, checking that every…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/students/installing-from-git-clones-for-study.md

On this page

Installing from Git clones for study

This page is for learners on the developer path, and for anyone who wants to read the code they run. It follows Develop with Git, which the project recommends "for building a website", and explains why a clone is also the best way to study.

Contents

  1. Why clones help you learn
  2. What you need
  3. The steps
  4. Check that it worked
  5. First things to explore

Why clones help you learn

From the comparison in Develop with Git:

With a clone you canCommand
See every change you made, line by linegit status, git diff
Find out why a line is there, who changed it and whengit log, git blame
Find which change broke somethinggit bisect
Keep your own changes on your own branchgit switch -c my-site
Send a fix back to the projectpush to your fork, open a pull request

A release archive gives you the files and nothing else. A clone gives you the history, which is a record of how experienced developers solved real problems. Reading it is studying.

What you need

  • Git 2.28 or later (git --version);
  • Composer 2 (composer --version) and PHP as listed in the requirements;
  • a GitHub account only when you want to send changes back. Installing needs none.

Source: Develop with Git.

The steps

composer config --global 'preferred-install.se7enxweb/*' source
git clone https://github.com/se7enxweb/exponential.git exponential
cd exponential
git switch -c my-site
composer install
php bin/php/console exp:install --apply --random-password --url=http://localhost:8087
php bin/php/console exp:velocity start --engine=php

What each line does, as Develop with Git explains:

  1. The Composer setting installs every se7enxweb/* package as a Git clone, and the libraries as archives. Keep the quotes, so your shell does not expand the *.
  2. git clone fetches the kernel with its whole history; the page measured more than 27,000 commits and about 370 MB, two to three minutes on a normal connection.
  3. git switch -c my-site starts your own branch for your changes, on top of main, the current development line.
  4. composer install clones every extension the kernel requires into extension/<name>, each with its history.
  5. The last two lines install and serve the study site, as in Installing a study site in one command.

To study a published release instead of the development line, name its tag: git switch -c my-site v6.0.14. Read Versions, tags and branches first, because older tags need a newer PHP for their test tools.

Check that it worked

composer status -v
ls -d extension/*/.git | wc -l
git -C extension/eztags log --oneline -3
git -C extension/eztags status

composer status -v should say No local changes; the second line counts the extensions that are clones. In an extension, "HEAD detached" is normal: Composer checks out the exact release tag that composer.json asks for. Start a branch before you change anything there (Develop with Git).

git status in the root lists the extensions as untracked folders; they are separate repositories, and that is expected.

First things to explore

ExerciseCommand or page
The last ten changes to one filegit log --oneline -10 -- kernel/content/view.php
Who changed each line of itgit blame kernel/content/view.php
Every commit that added or removed a wordgit log -S "CheckValidity" --oneline
How commit messages are written heregit log --oneline -20 (subjects start with Added:, Updated:, Fixed: and so on)
What an extension holdsWhat an extension is

Note in your study journal one commit you understood and why it was made.

Warning

Never git clone by hand into a folder Composer installed as an archive. At the next update Composer replaces it without asking, and your commits are gone. Let Composer make the clone with composer reinstall <package> (When Composer refuses).

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x