DevOps Classsroom Series – 07/Feb/2021

Git Contd..

Scenario: Understanding Branches

  • There will be many cases where parallel tracks of development will happpen on your projects
  • Git branches enable you to create parallel tracks of development. In Git there is already a default branch which is referred as master
  • Now lets create two more branches
    • rel_1.0 Preview
    • rel_1.1 Preview
  • Now lets make a change in rel_1.0 and commit the changes to local repo Preview
  • Now lets make a change in rel_1.1 and commit the changes to local repo
  • Branch will point to the latest commit on that branch and head will be pointing towards branch which points to latest commit
  • Now we need changes of rel_1.0 branch to be in master.
    • Fast forward merge Preview
  • Lets make changes in master branch and commit those changes and also do some changes on rel_1.0 branch Preview Preview
  • Now we need to merge the changes from rel_1.0 to master
    • Merges might lead to conflicts and that needs to be resolved Preview Preview
  • Git Rebase
    • Refer Here for documenation
    • Lets rebase master onto rel_1.1
    git checkout rel_1.1
    git rebase master
    # fix merge conflicts 
    # add the changes usign git add
    # then continue the rebase git rebase --continue
    
    Preview
  • In git if you want to pick certain commits and add it to the branch then that is referred as cherry-picking
  • Now lets create two branches from master
    • rel_1.2
    • rel_1.3
  • Refer Here for cherry-pick documentation
  • Now we have understood three ways bringing changes from one branch to other
    • merge
    • rebase
    • cherry-pick

How Git Works

  • To understand how git works, we need to know about

    • Hashing (SHA1):
      • This is transformation of string of characters into a shorted fixed length value
      • Two text with same value will have same hash
  • Git can be reffered as a stupid content tracker.

  • In Git every commit id is generated by calculating hash of

    • Changes
    • Author
    • Date time
    • Message
  • Every commit will have a parent commit Preview

  • In Git Commit tree stands for folder and binary large object (blob) stands for file Preview Preview

Fourth Area of git

  • Fourth area of git is referred as remote repository, which is used to collobarate work done by multiple developers in an orginization Preview
  • Git remote repository contains the same .git folder and in addition to that it will have
    • connectivity options (for developers to connect)
  • To have this on git remote repository some daemon will be running.
  • There are many ways to configure git remote repository
    • We can host git remote repository on some shared folder in your organization
    • We can use some git remote repository softwares
      • Gitolite
      • GitLab
    • We can use some hosted git remote repository options
      • GitHub
      • BitBucket Cloud
      • GitLab
      • Azure Source repos
      • AWS Code Commit
  • We can have a local repository which is connected to multiple remote repositories
  • Just like master was a default branch, the default remote repository also will have a name origin
  • So now lets create a new repository in GitHub and send all the changes which we have done in the class to that repository
    • Add remote repository to local repo Preview
    • Sending the changes from local repo to remote repo is referred as push and the command for pushing is git push <name-of-remote> <name-of-branch> Preview Preview Preview
    • Lets try to push all the branches to remote repo Preview Preview
  • How to get the copy of the code from existing remote repository
    • This operation is referred as clone. Preview Preview
    • Now lets checkout to rel_1.1 Preview
  • To push the changes to remote repository, we need permissions Preview

Next Steps

  • Understanding multiple users workflow
  • Understanding recieving latest changes from remote repository
  • Understanding git tags
  • How to make changes to the existing commits

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Responsive Web Designing Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube