Engee documentation

Working with Git

If you haven’t worked with Git or other version control systems, we recommend checking out introductory article beforehand.

Git is a distributed version control system. It is designed to track changes to files and coordinate work on projects (see official site for more information).

Before you start working with Git, we recommend reading article on working with a remote repository and getting an SSH key.

You are now ready to work with Git:

Git is a distributed version control system because it consists of both a remote repository located on a server and a local repository that is stored on the user’s computer:

  • * A remote repository (remote repository) is a repository located on a server and accessible to users over the internet. All files, commit history, and other Git data are stored on the remote server. A remote repository supports collaboration - multiple developers working on the same project, sharing changes from their local repositories. Usually located on hosting platforms such as: GitLab, GitHub or Bitbucket.

  • A local repository (local repository) is a copy of the project and code base that is stored on the developer’s local computer. The copy contains the full change history, branches, and other Git objects, storing them locally.

Remote and local repositories are closely related:

  • A local repository can be created by cloning a remote repository to the developer’s computer.

  • The developer can send his changes from the local repository to the remote repository and receive updates from the remote repository to the local repository.

  • Local and remote repositories provide a collaborative environment for a project, allowing developers to share changes and manage code versions.

Developers share changes through a remote repository:

local remote repo 1

Each developer will use their local repository, but eventually all development will be moved to the remote repository. Once the code is in the remote repository, other developers will be able to see and work with the new changes.

A more compact representation of the difference between local and remote repositories is shown in the table below:

Speciality

Local repository

Public repository

Location

Locally (Engee or developer’s computer)

On remote server

Accessibility

Developer only

All developers (with access)

Operations

Local Git operations

Remote Git operations

Privacy

Accessible only to developer

Full public access or restricted accessibility

Synchronisation

Requires synchronisation with remote repository

Automatic synchronisation with other copies of the repository