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:
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 |