Project submissions at EPITA are done via Git on the Forge. Completing this step unlocks your first achievement on the Forge intranet.

What is Git?#

Git is a version control system: it records the history of changes made to files in a project. Each snapshot of your work is called a commit and is stored in a repository.

A key point that trips up many beginners: committing and pushing are two separate operations. When you create a commit, it is saved only in your local repository. Nobody else can see it. To share your work, you must explicitly push your commits to the remote repository hosted on the Forge. The graders only ever see what has been pushed, so a commit that stays local is as if it were never done.

Setting up Git#

Git identity#

Before your first commit, tell Git who you are. Open ~/.gitconfig in your text editor and fill it with the following content, replacing the name and email with your own:

[user]
name = Firstname Lastname
email = firstname.lastname@epita.fr
[color]
ui = true
[push]
default = simple

Use your actual first and last name (capitalised, separated by a space) and your EPITA email address.

SSH key#

Git communicates with the Forge over SSH. You need to generate a key pair and register the public key on your Forge ID profile.

Go to Forge ID, click SSH key in the left menu. Click on the Help button at the bottom of the form to get the instructions on how to generate your key pair.

After following the instructions, paste (CTRL+V) your public key in the form and save it.

Cloning your repository and submitting your assignment#

Finding your repository#

  1. Go to the Forge intranet. On the homepage, a list of ongoing activities is shown at the top. Click on Welcome Practical.
  2. Click on the Hello World assignment. The page shows you two things you will need:
    • The repository URL, in the form firstname.lastname@git.forge.epita.fr:p/...
    • The tag pattern required for submission (hello-*)

Cloning the repository#

Copy the repository URL from the assignment page, then run it in a terminal:

git clone firstname.lastname@git.forge.epita.fr:p/...

This creates a local directory with the repository. Move into it:

cd <repository-name>

Completing the assignment#

The assignment asks you to create a file named hello.txt at the root of the repository, containing exactly:

Hello World!

Open it with vim or emacs (as seen in the previous step) and save it.

Now you need to record this file in Git’s history. This is a two-step process:

  1. git add : tell Git which files to include in the next commit. Think of it as putting files into an envelope before sealing it. A file that exists on disk but has not been added will be ignored by Git.
git add hello.txt
  1. git commit : seal the envelope and save the snapshot permanently in your local history. The -m flag lets you attach a short message describing what you did.
git commit -m "Add hello.txt"

Submitting with a tag#

A tag is a label you attach to a specific commit to mark it as significant: think of it as a sticky note on a point in your history. Unlike a commit message, a tag has a name you can refer to explicitly, which is what the Forge uses to detect submissions.

Submissions are triggered by pushing a Git tag matching the pattern hello-*. Create a tag and push it along with your commit:

git tag hello-v1
git push
git push --tags

Earning your first achievement#

Head back to the Hello World assignment page on the intranet. The automatic grader runs shortly after your tag is pushed. Once it validates your submission, the achievement is unlocked on your profile.


That covers the essential tools. If something is unclear, your first weeks of classes will fill in the gaps. Welcome to EPITA!