Most popular version controlling tool

List existing branches.

git branch

Switch to a different branch

git checkout <branch_name>

Merge changes from one branch into the current branch

git merge <branch_name>

Temporarily save changes that are not ready to be committed.

git stash

Fetch remote change like if new branch created etc

git fetch -all

View commit history
git log

git reset --hard <commit>: Move the current branch pointer and reset the staging area to a specific commit

Push local changes to a remote repository

git push

Clone a remote repository to your local machine

git clone

how to git reset to specifici comitt and push to to gituhb remote repo

git reset --hard <commit-hash>
 git push -f origin <branch-name>

Main Branches 

develop and master are main branches 

When the source code in the develop branch reaches a stable point and is ready to be released, all of the changes should be merged back into master somehow and then tagged with a release number. How this is done in detail will be discussed further on.

Therefore, each time when changes are merged back into master, this is a new production release by definition

Supporting branches 

Next to the main branches master and develop, our development model uses a variety of supporting branches to aid parallel development between team members, ease tracking of features, prepare for production releases and to assist in quickly fixing live production problems. Unlike the main branches, these branches always have a limited life time, since they will be removed eventually.

The different types of branches we may use are:

  • Feature branches
  • Release branches
  • Hotfix branches

Each of these branches have a specific purpose and are bound to strict rules as to which branches may be their originating branch and which branches must be their merge targets. We will walk through them in a minute.

Creating a feature branch 

When starting work on a new feature, branch off from the develop branch.

$ git checkout -b myfeature develop
Switched to a new branch "myfeature"

Feature branches 

May branch off from: develop

Must merge back into:develop

Branch naming convention:anything except master, develop, release-*, or hotfix-*

Rsync usage in linux
data transfer
--> AlhadiTech