Basics of Unix, Git, and 
              Github
Published: 2020-08-15 12:00:57

                  UNIX
Unix(UNiplexed Information Computing System) is an operating system which acts as a link between the computer and user.it is developed in 1969 at AT & Ts bell labs by ken Thompson and denis Ritchie also known for  father of  c programming language  
                     FEATURES OF UNIX
1 Multiuser capability
2 Multitasking capability
3 communication 
4 security


                       UNIX ARCHITECTURE
it is divided into 3 parts
1 kernel
2 shell
3 application program   
    
kernel- it is a heart of the operating system it interacts with hardware and manages memory, task scheduling, file management

shell- A shell provides an interface of the Unix system it gathers input from us and executes programs based on that input.
 
  further shell is divided into 2 parts
 1 c shell
 2 bourne shell

c shell(csh)- c cell is developed by Bill joy it is a command processor which run in a text window allow a user to type a commands
 Bourne shell-It is considered as a primary shell bash is the free version of the bourne shell.
 
               COMMANDS AND UTILITY
there are various command which we use in our activities
1.pwd-          it is used to print present work directory
2.ls -          list all folder and files in a directory
3.cd-           Used to change directory
4.cd ..         move back to one directory
5.cp -          copy file into a directory
6.rm-           remove or delete a file
7.mv-           move or rename a file
8.man-          manual(help) command
9.mkdir-        to create a directory
10.rmdir-       remove directory (but the directory must be empty)
11.ls -a        this command will show the whole list of current 
                directory
12.touch-       touch is used to create a file
13.echo-        echo is used to display a line of text
14.head-        head tag returns the first 10 line
15.tail-        it returns the last 10 line
16.cat-         cat allows to create single or multiple files
17.nano-        nano is a command-line text editor in which we can edit 
                our existing file
18.grep-        it is a command-line tool used to search character 
                in a specific file
19.grep -w-     search words in all file
20.rm -r-       used to remove file including its content
21.clear-       used to clear screen
22.exit-        exit terminal
 
          KEY FEATURES OF UNIX COMMAND
- always use lower case letter in Unix commands
-always use space or a tab between the commands name

                
                     GIT

Git is a distributed version control system for tracking changes in computer files and coordinating work on those files among multiple people.
  
version-control-system: Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. 

                  STAGES OF GIT
there are three stages 
1.working tree
2.stagging area
3.commit

Working tree: working tree consist of current working files in which we can add and edit files it is also called an untracked area of git if we make changes in our working file git recognized a modification
 
Staging area: this stage starts the tracking of our repo from this stage we have two options either go to commit and another one is going to working tree for modification.

Commit: git commit command takes a snapshot representing the staged changes

                GIT COMMANDS
1.git config --  used to set name and email
2.git init   -    it creates a new git repository
3.git add     -   it used to add changes in the staging area
4.git commit   -  record changes of a repository
5.git status    - git status command is used to show the status 
                 of repo 
6.git commit -m" -changes" it shows what type of changes we mad in 
                         file
7.git checkout   -it is used to recover file
8.git log        -git log commands display all of the commits 
                 in the repo history
                     -hash algorithm
                     -commit message
                      -author
                       -date
9.git log -p -1  - if we have multiple logs by the help of 
                  this we can watch the last updated commit 
                  details 
10.git diff     -  when we updated our repo and wanted to see the 
                  the difference we can use this 
10.git ignore    - it is used to ignore file 
11.git restore   - git restore is about restoring files in the 
                  a working tree from either the index or another 
                  commit
                
                BRANCHING AND MERGING
The git branch is a branch management tool. Brach gives a feature to keep developing and adding a new feature to the software without affecting the main part of the project. The primary or default branch in git is the master branch developers create a copy of the main branch start development.
merging takes the contents of a source branch and integrates them with a target branch.in this process, only the target branch change source branch remains the same 
   there are two types of merging
1.fast forward merging
2.3-way merge  
 
Fast forward merging: A fast-forward merge can occur when there is a linear path from the current branch tip to the target branch.

3-way merge: 3-way merging use when there is not a direct path of a merge. It takes two commits to create a new commit called merge commit
                            GITHUB
GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control changes to their code
In Github, we can create a copy of a project and assigned to anyone