Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add git documentation #1

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions git-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<div align="center">
<h1>Git</h1>
</div>

## What is Git

Git is the most commonly used version control system. Git tracks the changes you make to files, so you have a record of what has been done, and you can revert to specific versions should you ever need to. Git also makes collaboration easier, allowing changes by multiple people to all be merged into one source.

Version control means recording changes to a file or set of files over time so that you can recall specific versions later.

### 1. Install Git

First, you need to install the Git version control\
software for your operating system here: https://git-scm.com/downloads


### 2. Checking status of the repository

The `git status` command allows you to check the status of the project:
If it is

- initiated
- modified
- staged

We can use the command `git status` at any time. It is a means to check what is happening on your project.


### 3. Configure your name and your email

Open the Git bash if your device is Windows, or open the Mac terminal if your device is MacOS. `global` means the specified account will be used for all cloned repositories. Next, write up the following commands below:

```shell
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
git config --global user.name 'yourname'
git config --global user.email 'youremail'
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

### 4. Creating a local Git repository

In this step, you will create a folder (directory) for your project. A project is just a simple folder that stores all the files related to a certain project. A local repository is a project or a folder that is on your computer.

If Git Bash is not opened, search for Git Bash and open it. The terminal will pop up on Windows devices. If it's MacOS, just open the Mac terminal. Now type:

```shell
mkdir project_name
cd project_name
```

By the way, you can also create the folders the usual way using on the GUI(Graphical User Interface) of Windows or Mac.


### 5. Initialize Git

After creating a new local repository or in an existing local repository, initialize the repository by the following command:
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After creating a new local repository or in an existing local repository, initialize the repository by the following command:
After creating a new local repository or in an existing local repository, initialize the repository by running the following command:


```shell
git init
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

Once, the repository is initialized git tracks the changes in the files and folders of the project.
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once, the repository is initialized git tracks the changes in the files and folders of the project.
Once the repository is initialized, Git will track the file and folder changes of the project.



### 6. Add file to the staging area

The file can be added to the staging area in multiple ways.
To add a single file, we use the _git add_ command followed by a file name
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To add a single file, we use the _git add_ command followed by a file name
To add a single file, we use the `git add` command followed by a file name.


```shell
git add filename
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

To add multiple files using their file names using the command _git add_ followed by file names
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To add multiple files using their file names using the command _git add_ followed by file names
To add multiple files using their file names, use the command `git add` followed by their file names.


```shell
git add filename1 filename2
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

Sometimes, we make a lot of changes, and adding files one by one is time consuming. Therefore, we can use a short and productive way. The _git add_ command followed by a dot allows adding files and folders at once to the staging area. Remember, there is a space between the add and the dot.

To add all files and folders at once
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Comment on lines +78 to +80
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Sometimes, we make a lot of changes, and adding files one by one is time consuming. Therefore, we can use a short and productive way. The _git add_ command followed by a dot allows adding files and folders at once to the staging area. Remember, there is a space between the add and the dot.
To add all files and folders at once
If you wanna stage all of your Git changes, there's a quicker and more efficient way to do that. This is very useful if you have lots of changes or you just want to stage them all quicker.


```shell
git add .
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

### 7. Unstage a file

```shell
git reset HEAD filename
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

### 8. Commit the changes

Commit means taking a snapshot or a copy of your file at that point in time. You may associate it with saving a file with a new name (save as).

```shell
git commit -m 'your message'
```
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Your commit message has to be associated with the changes or modifications you make.

To add and commit at the same time
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To add and commit at the same time
If you wanna commit and add at the same time, run the following command.


```sh
git commit -am 'commit message'
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```

### 9. Git log

The _git log_ command allows you to check the commit history of the project. It list down all the commit history
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The _git log_ command allows you to check the commit history of the project. It list down all the commit history
The `git log` command allows you to check the history of the project. It'll list down all the commit history.


```sh
git log
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
```


### 13. Creating a branch

Branch in Git is similar to the branch of a tree. Analogically, a tree branch is attached to the central part of the tree called the trunk. While branches can generate and fall off, the trunk remains compact and is the only part by which we can say the tree is alive and standing. Similarly, a branch in Git is a way to keep developing and coding a new feature or modification to the software and still not affecting the main part of the project. We can also say that branches create another line of development in the project. The primary or default branch in Git is the main branch (similar to a trunk of the tree). As soon as the repository creates, so does the main branch (or the default branch).
aminoxix marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Branch in Git is similar to the branch of a tree. Analogically, a tree branch is attached to the central part of the tree called the trunk. While branches can generate and fall off, the trunk remains compact and is the only part by which we can say the tree is alive and standing. Similarly, a branch in Git is a way to keep developing and coding a new feature or modification to the software and still not affecting the main part of the project. We can also say that branches create another line of development in the project. The primary or default branch in Git is the main branch (similar to a trunk of the tree). As soon as the repository creates, so does the main branch (or the default branch).
Branches in Git are similar to the branch of a tree. Analogically, a tree branch is attached to the central part of the tree called the trunk. While branches can generate and fall off, the trunk remains compact and is the only part by which we can say the tree is alive and standing. Similarly, a branch in Git is a way to keep developing and coding a new feature or modification to the software and still not affecting the main part of the project. We can also say that branches create another line of development in the project. The primary or default branch in Git is the main branch (similar to the trunk of a tree). As soon as the repository creates, so does the main branch (or the default branch).


To create a branch (only create it):

```shell
git branch -u branch-name
```

- To create and checkout to the branch at the same time:

```shell
git checkout -b branch-name
```

To switch between branches:

```shell
git checkout main
git checkout branch-name
```

To list down all the branches:

```shell
git branch
```