> For the complete documentation index, see [llms.txt](https://chrysalis-1.gitbook.io/sei-ga-web-development-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chrysalis-1.gitbook.io/sei-ga-web-development-notes/javascript-js/git-and-github.md).

# Git and GitHub

![](https://3269038430-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJpjNndxxBqo49X5XzFF1%2Fuploads%2FxhRFkh38tZCvpHdmmCj4%2Fimage.png?alt=media\&token=41734354-da29-441e-ac24-54d5325ef485)

## How Git & Github Works

Git is an open source and free distributed version control system (VCS) used for software development.

![](https://3269038430-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJpjNndxxBqo49X5XzFF1%2Fuploads%2F8WNNrt1irJnXwtEV5orh%2Fimage.png?alt=media\&token=a17de7d7-35d2-4333-b30f-dfa46effb243)

## How To Pull Request

![](https://3269038430-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJpjNndxxBqo49X5XzFF1%2Fuploads%2FGvJZzavPPB7rmRRdSFTB%2Fimage.png?alt=media\&token=0afbe27c-aab7-4a91-a531-f0e013ade452)

## What is a Git Branch?

A Git branch is essentially an independent line of development. You can take advantage of branching when working on new features or bug fixes because it isolates your work from that of other team members.

![](https://3269038430-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJpjNndxxBqo49X5XzFF1%2Fuploads%2Fumm4PFiAhAdJ55l54CG7%2Fimage.png?alt=media\&token=c8dc4a9a-1e26-404d-bf00-d7b0be68be24)

Different branches can be merged into any one branch as long as they belong to the same repository. The diagram below illustrates how development can take place in parallel using branches:

&#x20;

![](https://3269038430-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJpjNndxxBqo49X5XzFF1%2Fuploads%2F735JwDxsRVV4278c7CCW%2Fimage.png?alt=media\&token=29cbfb76-d74c-4b7f-9983-628720db2634)

Branching enables you to isolate your work from others. Changes in the primary branch or other branches will not affect your branch, unless you decide to pull the latest changes from those branches.

It is a common practice to create a new branch for each task (i.e., a branch for bug fixing, a branch for new features, etc.). This method allows others to easily identify what changes to expect and also makes backtracking simple.
