Looking for a Tutor Near You?

Post Learning Requirement »
x
x

Direction

x

Ask a Question

x

Hire a Tutor

PPT On Software Project Management With Github

Loading...

Published in: Web Development
2,613 Views

Git is client side tool to manage the source code. Git is available for different OS. Github is server side tool to interact with different people to manage, colloborate, distribute and versioned source code.

Hafiz S / Dubai

3 years of teaching experience

Qualification: BS Engineering

Teaches: Computer Science, Matlab, Engineering, Linux, UNIX, Website Design, C Language, Java, Physics

Contact this Tutor
  1. Software Project Management with Git & Github By Shehbaz Ali & Khurram Hameed
  2. Benefits of Git Collaboration Storing version (properly) Restoring previous version Understanding what happened Backup
  3. in
  4. Assumption http://hsali.me/events
  5. Assumption Proper installed operating system Google account Github account( free public repository only) Gitlab account (free private repository + public repository) Git client software Github Software
  6. Install Git and Github !
  7. About
  8. Who Created Git ? Git was initially designed and developed by Linus Torvalds for Linux kernel development in 2005 Git development began in April 2005 after many developers of the Linux kernel gave up access to BitKeeper Git meaning "unpleasant person" The man paqe describes Git as "the stupid content tracker"
  9. History e lifetime of the Linux kernel maintenance (1 991-2002) e In 2002, the Linux kernel project began using a proprietary DVCS called BitKeeper e In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down
  10. Git Development Features Some of the goals of the new system were as follows: Speed Simple design Strong support for non-linear development (thousands of parallel branches) Fully distributed
  11. Git Code and Tools
  12. Git Source Code G) 40,736 commits c 44 Shell 34.1% V 5 branches Perl -8.7% O Tcl 6.0% 0 573 reieases Python 2 contributors Other 2 8% https://github.com/git/git https://qithub.com/[Organization I username]/project-name
  13. Git Client Softwares Git-gui Smart-git Github Desktop app
  14. O O Git Server Github Gitlab BitBucket Others
  15. Examples
  16. Example 1 : Create Start Github application Create new repo local create new files and folder for your project create repo add remote push changes to remote
  17. Example 2 : add Start Github application browse local folder to start git modify files and folder create remote repo Or publish Add remote & push changes to remote
  18. Example 3: Clone Create repo. online on Github Start Github application clone remote repository add, modify files and folder Add remote & push changes to remote
  19. Ideouoo
  20. Snapshots Version 1 File A File B File C Version 2 Checkins Over Time Version 3 Version 4 Version 5 LA2 Storing data as changes to a base version of each file
  21. Snapshots File A File B File C Al Checkins Over Time Al Storing data as snapshots of the project over time
  22. Three States Working Directory Staging Area Checkout the project .git directory (Repository) Stage Fixes Commit Working directory, staging area, and Git directory
  23. Git Usage tools o Command Line Bash, cmd, powershell difficult full control O GUI Git GUI, Github Desktop, smartgit easy less functionality
  24. Git Help $ git help $ git --help $ man git-
  25. Introduction Concept
  26. Git Basic Concepts VCS, CVCS and DVCS Local Repository, Remote repository Objects : Blob, Tree, Commit, Tags Branches, Remote Clone, init pull, push, fetch, merge checkout, reset show, log, diff Head, Revision
  27. Checkout File Local Computer Version Database Version 3 Version 2 Version 1
  28. Computer A Checkout file Computer B Checkout file Central VCS Server Version Database version 3 version 2 version I
  29. Git Features Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Branching and Merging Small and Fast Distributed Data Assurance Staging Area Free and Open Source
  30. Git Features Branching and Merging Frictionless Contextual Switching Role-Based Codelines Feature Based Workflow Disposable Experimentation master develop topic
  31. Git File Structure The SHA 6ff87c4664981 e4397625791 c8ea3bbb5f2279a3 The SHAI hash is a cryptographic hash function 40-character strings all over the place in Git
  32. Git File Structure Objects Git as a filesystem. It is content-addressable. Every object consists of three things - a type, a size and content Type of Objects BLOB Tree Object Commit Object Tag Object
  33. Git File Structure Objects A "blob" is used to store file data - it is generally a file. A "tree" is basically like a directory - it references a bunch of other trees and/or blobs (i.e. files and sub-directories) A "commit" points to a single tree, marking it as what the project looked like at a certain point in time. It contains meta-information about that point in time, such as a timestamp, the author of the changes since the last commit, a pointer to the previous commit(s), etc. A "tag" is a way to mark a specific commit as special in some way. It is normally used to tag certain commits as specific releases or something along those lines.
  34. Git File Structure 5b1d3 blob size '"gorse-ogticrs.h"
  35. Git File Structure fa49bØ " new new. txt file" 3c4e9c tree test. txt If7a7a "version bak d8329f tree test. txt 83baae "version Ill
  36. Git File Structure tree blob tree tree blob blob 5b1d3 03e79 cdc9b cba0a 91 lei size README lib test test rb xdiff
  37. Git File Structure la41Øe thi rd new. txt test . txt test . txt cac0ca second new. txt fdf4fc f irst bak commit commit commit 3c4e9c tree 0155eb tree d8329f tree If7a7a "version 2" fa49bØ 11 new file" 83baae 'version 1"
  38. Git File Structure ae668.. commit size tree parent author c4ec5 a149e Scot* committer scote cry messagesccs El'.erc it is really, really coal
  39. Git File Structure 49e11.. tag object type tager my tag message this tog size commit cxoloins
  40. Git Configuration git config --global user.name "Abc" git config --global user.email "[email protected]/ git config --global core.editor vim git config --list // this will show the all config values git config --global core.editor vim git config --global color.ui true These configuration are globally set. This email and username will use in every project. Global Vs Local configuration
  41. Branch Concept Branch, remote, merge, pull, push concept
  42. Branch 98ca9 92ec2 commit size tree size tree 92ec2 author Scott committer Scott The initial commit of my proj ect Commit and its tree blob 5b1d3 blob 911e7 LICENSE blob cba0a README test. rb Testing library This library is used to test Ruby projects. 911e7 blob size The MIT License Copyright (c) 2008 Scott Chacon Permission is hereby granted, free of charae to an cba0a blob size require i logger' require 'test/unit' class Test: :lJnit: :TestCase
  43. Branch 98ca9 commit size tree 92ec2 pa rent author Scott committer Scott The initial commit of my project commits and their parents 34ac2 commit size tree 184ca parent 98ca9 author Scott committer Scott Fixed bug #1328 — stack overflow under certain conditions f3Øab commit size tree Ode24 parent 34ac2 author Scott committer Scott — ability to add new add feature #32 formats to the central interface
  44. Branch 98ca9 branch and its history HEAD master -
  45. Create Branch 98ca9 34ac2 master f3Øab testing two branches pointing into the same series of commit
  46. Branch head 98ca9 Head pointing to branch 34ac2 HEAD master f30ab testing
  47. Switch Branch 98ca9 34ac2 master f30ab testing HEAD Head pointing to current branch. checkout is used to switch branch
  48. Advance Branch 98ca9 34ac2 master f30ab 87ab2 testing HEAD The HEAD branch moves forward when a commit is made
  49. Switch Master Branch 98ca9 34ac2 HEAD master f30ab 87±2 testing Head move when checkout
  50. Advance Master Branch 98ca9 Advance master 34ac2 HEAD master 87±2 f30ab c2b9e testing
  51. Branch merging co A simple commit history master
  52. Branch merging co Creating new branch pointer master iss53
  53. Branch merging co master iss53 The iss53 branch has moved forward with your work
  54. Branch merging co Hotfix branch based on master master hotfix iss53
  55. Branch merging co master is fast-forwarded to hotfix master hotfix iss53
  56. Branch merging co Work continues on iss53 master iss53
  57. Branch merging co master Common Ancestor Snapshot to Merge Into Snapshot to Merge In iss53 Three snapshots used in a typical merge
  58. Branch merging co A merge commit master iss53
  59. Remote Branches Ob743 Ob743 local and remote work can diverge a6b4c a6b4c git. ourcompany. com f4265 My Computer origin/master f4265 31b8e a38de maste r 190a3 Someone else pushes 893cf master
  60. Remote Branches Ob743 Ob743 a6b4c a6b4c git. rcompany. com f4265 git fetch origin My Computer f4265 31b8e 31b8e a38de master 19Øa3 origin/master 190a3 893cf master git fetch updates your remote references
  61. Remote Branches Adding another server git. ou rcompany. com 31b8e origin git , teaml. ou rcompany. com master 190a3 master 31b8e f4265 Øb743 f 4265 teamone git remote add teamone git://gitu teaml. ourcompany.com My Computer origin/master a6b4c f4265 31b8e a38de 19Øa3 893cf master
  62. Remote Branches f4265 Øb743 git,ou rcompany. com origin a6b4c git, teaml, ou rcompany. com master master 190a3 git fetch teamone My Computer f 4265 teamone 31b8e teamone/master origin/master f4265 31b8e a38de lgøa3 893cf master Remote tracking branch for teamone/master
  63. Remote Branches git push origin master push changes to origin(remote) master(branch)
  64. Commands command for operation of the
  65. git init create folder for your project add files in the folder and files in the folder. init the git filesystem with this command . git init create the git file system for your project
  66. Untracked Add the file Unmodified Edit the file Modified Staged Stage the file Remove the file Commit The lifecyle of status of your files
  67. git status git status --short git status see the status of files
  68. The Three states working directory git add staging area repository git commit
  69. git add & commit $ git add . $ git add *.c // all files // files with extention .c $ git add file-name // specific file name $ git commit -m 'initial project version' add the files into staging area and commit to add files into repository directory
  70. working directory Local Operations staging area checkout the project git directory (repository) stage files commit
  71. git log $ git log // all log files $ git log -n // number of three commit $ git log - // summary of changes -stat $ git log --pretty=oneline $ git log --pretty=format:"%h - %an, %ar : // hash, author name,relative, subject $ git log --since=2.weeks $ git log --grep="regular expression" // data in the message of commit log of the repository
  72. git remote $ git remote add [remote-name] [url] $ git remote -v $ git remote show [remote-name] $ git remote rename [old-name] [new-name] $ git remote rm [remote-name] Remote to push changes to server // add new remote // view all remotes // show specific branch // rename the remote // delete the remote
  73. git branch $ git branch [branch-name] $ git branch -d [branch-name] $ git branch --merged $ git branch --no-merged // create new branch // delete branch // filter merge branch // filter non-merge branch $ git branch -v -a // all local and remote branches and head add, delete and view branches
  74. git show $ git show [tag-name] $ git show [options] [object] to show the various type of objects // show tag object // show specific object
  75. git checkout $ git checkout [tag-name] // switch to [tag-name] tag $ git checkout [branch-name] // switch to [branch-name] branch $ git checkout -b [branch-name] // create new [branch-name] and switch $ git checkout -B [branch-name] // create and switch to start point if exist already Checkout a branch or paths to the working tree
  76. git pull, push, fetch $ git pull origin master git fetch [remote-name] $ git merge $ git push origin master Remote
  77. Don't Ask Difficult Questions
  78. Thank U
  79. Reference Wikipedia qit-scm qithub stack overflow Stack exchanqe Github workshop