Git-GitHub-GitHubClassroom

alt Github image

Introduction: Git and GitHub

1. Installing Git

First, we need to install Git: the version control software.

2. Configuring Git Account

Open a terminal on your Windows or Mac and then write the following commands: alt Github image

3. Initialize a Local Repository

  1. First, let’s start by creating a folder for our project. For this you can use the GUI of Windows or Mac, use a terminal or your preferred IDE.
  2. Next, cd into your project folder:
    cd project_name
    
  3. Finally, we need to initialize the repository using the following command:
git init

alt Github image

4. Staging & Tracking Files

4.1. Adding files to the staging area

4.1.1. Create a file named index.html containing a simple <h1> tag 4.1.2. Git does not know about the file index.html. We can check the tracked files using the following command:

git status

4.1.3. The git status command allows you to know the status of the project: If it is initiated, modified, staged alt Github image

4.1.4. For Git to recognize this file, we need to add it to the staging area and create a commit.
There are multiple ways to add files to the staging area.

alt Github image

4.1.5. To remove a file from the staging area, we need to use the following command:

    git rm --cached filename

4.2. Commits

A commit allows us to create a snapshot of the project state at that point of time. To create a commit, we use the following command with -m stands for message and we list the message associated with this commit.

   git commit -m 'your message'

The message should be short and accurately describes the changes made. A clear message would allow us to identify a specific commit and eventually roll back to that state if needed.

alt Github image

To list all commits in The Local Repository

   git log

To list only latest 3 commits

   git log -p -2

To go back to a specific commi

   git checkout commitID

Commit types | Commit Type | Title | Description | Emoji | | ———– | ———————— | ———————————————————————————————————– |:——:| | feat | Features | A new feature | ✨ | | fix | Bug Fixes | A bug Fix | 🐛 | | docs | Documentation | Documentation only changes | 📚 | | style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | 💎 | | refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature | 📦 | | perf | Performance Improvements | A code change that improves performance | 🚀 | | test | Tests | Adding missing tests or correcting existing tests | 🚨 | | build | Builds | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) | 🛠 | | ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) | ⚙️ | | chore | Chores | Other changes that don’t modify src or test files | ♻️ | | revert | Reverts | Reverts a previous commit

5. Remote

First, we need to create an account GitHub.

5.1. Create a Repository

alt Github image

5.2. Add a new remote to a local repository

   git remote add origin https://github.com/user/repo.git

5.3. Push to a remote repository: The git push command is used to upload local repository content to a remote repository

For the first push, we need to use this commend:

   git push --set-upstream origin master

OR

   git push -u origin master

5.4. Pull to a local repository: The git pull command si used to fetch and download content from a remote repository and immediately update the local repository to match that content

   git pull

5.5 Copy an existing remote repository onto your local machine

git clone URL_OF_REPO

6. Branches

The branch is the copy of the main(or master) at branching instant. After branching, the branch and the master don’t see each other. You can create as many branches as you want.

alt Github image

6.1 Add a new Branch

git branch branch_name

6.2 Switch to another branch

git checkout branch_name

6.3 Create and checkout to the branch at the same time

git checkout -b branch_name

6.4 Merge a branch to the current branch

git merge branch_name

6.5 List of branches

git branch

6.6 Rename Branch

To rename any existing branch

git branch -m <old-name> <new-name>

To rename the current branch

git branch -m <new-name>

6.7 Delete Branch

The branch must be fully merged in its upstream branch.

git branch -d branch_name

OR Use the flag -D to force the branch delete.

git branch -D branch_name