> For the complete documentation index, see [llms.txt](https://volki.gitbook.io/git-started/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://volki.gitbook.io/git-started/environment.md).

# Environment

## Environment

At the heart of GitHub is an open source version control system (VCS) called Git, which is responsible for everything GitHub-related that happens locally on your computer.

Besides Git and GitHub you will also need a text editor, but I assume you already have one on your device.

## Get Everything Set up

If you’ve never used Git or GitHub before, there are a few things that you need to do. It’s [very well explained on GitHub](https://help.github.com/articles/set-up-git), but repeated here for simplification.

* Get a [GitHub](https://github.com/join?source=prompt-users-profile) account.
* Download and install [Git](https://git-scm.com/downloads).
* Set up Git with your user name and email.
  * Open a Git Bash shell and type:

    ```bash
    $ git config --global user.name "Your name here"
    $ git config --global user.email "your_email@example.com"
    ```
  * Then store your credentials by typing:

    ```bash
    $ git config --global credential.helper wincred
    ```

{% hint style="info" %}
Don’t type the **$** sign, that just indicates that you’re doing this at the command line.
{% endhint %}

## Learn the Basic Terminology

* **Repository** - most basic element of GitHub. They're easiest to imagine as a project's folder.
* **Remote/Local** - repository can be hosted on a server (our case GitHub), or on a local machine.
* **Collaborator/Contributor** -  contributor is someone who has contributed to a project, while collaborator is a person with read and write access to a repository who has been invited to contribute by the repository owner.
* **Downstream/Upstream** - when local and remote repository are connected, remote is considered upstream, and local downstream.
* **Public/Private** - private repository can only be viewed or contributed to by their creator and collaborators, public by everybody.
* **Clone** - copy of a repository that lives on your computer instead of on a website's server somewhere, or the act of making that copy.
* **Fork** - personal copy of another user's repository that lives on your account.
* **Branch** - parallel version of a repository.
* **Pull** -  refers to when you are fetching in changes and merging them.
* **Commit** - "snapshot" of individual change to a file (or set of files).
* **Push** - refers to sending your committed changes to a remote repository.
* **Issue** - suggested improvements, tasks or questions related to the repository. Issues can be created by anyone (for public repositories).

{% hint style="info" %}
If you want to learn more about terminology, make sure to check out the detailed [official GitHub glossary](https://help.github.com/en/articles/github-glossary).
{% endhint %}
