Git And Github Version Control (Local And Remote Repository)

Git And Github Version Control (Local And Remote Repository)
 

Topics

 
Following are the topics covered in this article.
  • Version Control
  • Git Introduction
  • Git installation
  • Commonly used commands in Git
  • Working with Remote Repository

Version Control

 
Version Control refers to a system that records changes to a file or set of files over time, called the ‘versions’. In other words, these versions help you in tracking the changes in your codes/project and if necessary, undo those changes as well.
 
There are three types of version control.
  • Local Version Controls
  • Centralized Version Controls
  • Distributed Version Controls
Local Version Controls
 
Version database or file is present on a local computer. Multiple people cannot work parallelly on the same project.
 
Git And Github Version Control (Local And Remote Repository) 
 
Centralized Version Controls
 
In CVC, a central repository is maintained where all versions are kept and a user can check out and check-in files from their different computers at any time.
 
Git And Github Version Control (Local And Remote Repository) 
 
The issue with CVC is that in case of central server failure, the whole system goes down. However, the solution is a distributed Version Control.
 
Distributed Version Controls
 
Version database or file is stored at every user’s local system and at remote servers. If any of the servers dies, a client-server user can be used to restore the data.
 
Git And Github Version Control (Local And Remote Repository) 
  

Issues with software development without Version Control

  • Once saved, all the changes made in files are permanent and cannot revert back.
  • There is no record what was done and by whom.

GIT and GitHub

 
Git is a distributed version control software which you need to install on your local system in order to use it. For an individual working on a project alone, Git proves to be excellent software.
 
Git And Github Version Control (Local And Remote Repository) 
 

Why is Git getting popular and why is it a clear winner?

 
The below listed are the advantages of using Git for version control.
  • Snapshots
  • Distributed
  • Integrity
  • Fast Operations
  • BranchHandling
  • Robust 
Git And Github Version Control (Local And Remote Repository) 
 
GitHub is a web-based Git version control repository hosting service. It provides all of the distributed version control and source code management (SCM) functionalities of Git.
 
GIT
GITHUB
Git And Github Version Control (Local And Remote Repository)

It is a software
Git And Github Version Control (Local And Remote Repository) 

It is a service
It is installed locally on the system
 It is hosted on Web
 It is a tool to manage different versions of edits, made to files in a git repository
 It is a space to upload a copy of the Git repository
It is a command-line tool
 It provides a graphical interface
 
Git File Workflow
 
Git And Github Version Control (Local And Remote Repository) 
 
Workspace Copy
 
Users' active directory simply creates new files in this space and this will be tracked by the Git.
 
Stage Area
 
It is a place where all the modified files marked to be committed are placed.
 
Local Repository
 
User’s copy of the version database or file and access all the files through local repos and push the change made to remote
 
Remote Repository
 
It is a server where all the collaborators upload changes made to files.
 
Clone Command
 
Creates a copy of an existing remote repository inside the local repository.
 
Commit Command
Commits all files from the staging area to local Repository
Push Command
Pushes all the changes made in local to Remote Repository
Fetch Command
Collects the changes from Remote Repository and copies them to Local Repository but doesn't affect our workspace
Pull Command
Collects the changes from Remote Repository and copies them to Local Repository along with merges to the current directory or our workspace
 
Git And Github Version Control (Local And Remote Repository) 
 

Install Git on Windows

  • Download the latest Git for Windows installer.
  • When you've successfully started the installer, you should see the Git Setup Wizard screen. Follow the Next and Finish prompts to complete the installation. The default options are pretty sensible for most users.
  • Open a Command Prompt (or Git Bash if during installation you elected not to use Git from the Windows Command Prompt).

    Git And Github Version Control (Local And Remote Repository)

  • Run the following commands to configure your Git username and email using the following commands. These details will be associated with any commits that you create:
Following are the Git commands which are being covered.
git config
git init
git clone
git add
git commit
git diff
git reset
git status
git rm
git log
git show
git tag
git branch
git checkout
git merge
git remote
git push
git pull
git stash
 

Start a Local repository

  • Create a directory to contain the project.
  • Go into the new directory.
  • Type git init.
  • Write some code.
  • Type git add to add the files.
  • Type git commit.

git config

Usage: git config –global user.name “[name]”
Usage: git config –global user.email “[email address]”
 
This command sets the author name and email address respectively to be used with your commits.
 
Git And Github Version Control (Local And Remote Repository) 
 
git init
 
Usage: git init [repository name]
 
This command is used to start a new repository.
 
Git And Github Version Control (Local And Remote Repository) 
 
Create a sample text file on the said path -
Name: File.txt
The syntax for list of files in said path, run the below command
 
ls –a
 
Usage: ls –a
This command lists all the files from the branch.
 
Git And Github Version Control (Local And Remote Repository) 
 
git clone
 
Usage: git clone [url]
This command is used to obtain a repository from an existing URL.
 
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository) 
 

Adding Files and Checking Status

 
To add a file to the staging area,
 
git add <filename>
git add File1.txt
 
Usage: git add *
 
This command adds one or more to the staging area.
 
To check the working tree status,
 
git status
Git And Github Version Control (Local And Remote Repository) 
 
Commiting Changes
 
To commit the staged files to your local repository
 
git commit
 
Git And Github Version Control (Local And Remote Repository) 
 
Staging and Committing Multiple Files
 
To stage and commit multiple files at once, use –a flag with the commit command,
 
git command –a – m “message”
 
Git And Github Version Control (Local And Remote Repository) 
 
git diff
 
Usage: git diff
 
This command shows the file differences which are not yet staged.
 
Git And Github Version Control (Local And Remote Repository) 
 
Usage: git diff –staged
This command shows the differences between the files in the staging area and the latest version present.
 
git reset
 
Usage: git reset [file]
This command unstages the file, but it preserves the file contents.
 
git rm
 
Usage: git rm [file]
This command deletes the file from your working directory and stages the deletion.
 
Git And Github Version Control (Local And Remote Repository) 
 
git log
 
Usage: git log
This command is used to list the version history for the current branch.
 
Git And Github Version Control (Local And Remote Repository) 
 
git show
 
Usage: git show [commit]
This command shows the metadata and content changes of the specified commit.
 
Git And Github Version Control (Local And Remote Repository) 
 
git tag
 
Usage: git tag [commitID]
This command is used to give tags to the specified commit.
 
Usage: git branch [branch name]
This command creates a new branch.
 
Usage: git branch
This command lists all the local branches in the current repository.
 
Git And Github Version Control (Local And Remote Repository) 
 
Usage: git branch -d [branch name]
This command deletes the feature branch.
 
Git And Github Version Control (Local And Remote Repository) 
 
git checkout
 
Usage: git checkout [branch name]
This command is used to switch from one branch to another.
 
Git And Github Version Control (Local And Remote Repository) 
 
Back to master,
 
Git And Github Version Control (Local And Remote Repository) 
 
git merge
 
Usage: git merge [branch name]
This command merges the specified branch’s history into the current branch.
 
Git And Github Version Control (Local And Remote Repository) 
 
git remote
 
Usage: git remote add [variable name] [Remote Server Link]
This command is used to connect your local repository to the remote server.
 
Git And Github Version Control (Local And Remote Repository) 
 
git push
 
Usage: git push [variable name] master
This command sends the committed changes of the master branch to your remote repository
 
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository) 
 
git pull
 
Usage: git pull [Repository Link]
This command fetches and merges changes on the remote server to your working directory.
 
Git And Github Version Control (Local And Remote Repository) 
 
git stash
 
Usage: git stash save
This command temporarily stores all the modified tracked files.
 
Git ignored
 
This command which told Git has been explicitly told to ignore.
 
.gitignore files contain patterns that are matched against file names in your repository to determine whether or not they should be ignored.
 
Git And Github Version Control (Local And Remote Repository) 
 

Creating a New Branch

  • git branch - An individual line of commit history that contains files that may differ from other branches.
  • git checkout - A way to move across the git commits and branches.
  • git merge - Combine a branch into the current checked out branch (i.e. the branch you are on).

    Git And Github Version Control (Local And Remote Repository)

    Git And Github Version Control (Local And Remote Repository)

Switching Branches

Git checkout <branchname>
 
Git And Github Version Control (Local And Remote Repository) 
 
Merge Branch
 
git merge <branchname>
 
Git And Github Version Control (Local And Remote Repository) 
 

GitHub

 
GitHub repository acts as your remote repository. It is a storage space where your project lives. We can keep code files, text files, images or any kind of a file in a repository.
 
GitHub repository is public which means that anyone can view the contents of this repository whereas in a private repository, you can choose who can view the content.
 
Also, private repository is a paid version. Also, if you refer the above screenshot, initialize the repository with a README file. This file contains the description of the file and once you check this box, this will be the first file inside your repository.
 
Git And Github Version Control (Local And Remote Repository) 
 

Creating a GitHub Repository

  • Go to the link. Fill the sign up form and click on “Sign up for Github”.
  • Click on “Start a new project”.
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository)
 
To create a branch in GitHub, follow the below steps:
  • Click on the dropdown “Branch: master”
  • As soon as you click on the branch, you can find an existing branch or you can create a new one. In my case, I am creating a new branch with the name “Test File”. Refer to the below screenshot for better understanding.

Git And Github Version Control (Local And Remote Repository)

Git And Github Version Control (Local And Remote Repository)
 

How to use GitHub - Operations

 
Commit Command
  • Click on the “edit” or a pencil icon in the rightmost corner of the file.
  • Once you click on that, an editor will open where you can type in the changes or anything.
  • Write a commit message which identifies your changes.
  • Click Commit changes in the end. 

Git And Github Version Control (Local And Remote Repository)

 

Pull Command

 
To merge this, commit changes from sub-branch to master branch.
 
Git And Github Version Control (Local And Remote Repository) 
  • Click the ‘Pull requests’ tab.
  • Click ‘New pull request’.
  • Once you click on a pull request, select the branch and click ‘readme- changes’ file to view changes between the two files present in our repository.
  • Click “Create pull request”.
  • Enter any title, description to your changes and click on “Create pull request”. Refer to the below screenshots.

Git And Github Version Control (Local And Remote Repository)

Click on create pull request button,
 
Git And Github Version Control (Local And Remote Repository) 
 
 Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository) 
 

Merge Command

 
Here comes the last command which merges the changes into the main master branch. We saw the changes in pink and green color.
 
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository) 
 

Cloning and Forking GitHub Repository

 
We can directly copy the contents by cloning or downloading. Refer to the below screenshot for a better understanding.
 
Git And Github Version Control (Local And Remote Repository) 
 

Forking

 
fork is a copy of a repository. Forking a repository allows us to freely experiment with changes without affecting the original project.
  • We need some code which is present in a public repository, under your repository and GitHub account.
  • Changes done to the original repository will be reflected back to the forked repository.
  • If you make a change in forked repository, it will not be reflected to the original repository until and unless you have made a pull request.
Git And Github Version Control (Local And Remote Repository) 
 
A fork can be done by others -
  • If the project owner likes your work, they might pull your fix into the original repository!
  • Propose changes to someone else's project
Git And Github Version Control (Local And Remote Repository)
 
Git And Github Version Control (Local And Remote Repository)
 
That’s all for this post, I hope you enjoyed it and got the solution for “how to use Git and GitHub”.