Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Quick Start – Version Control with Git

A Quick Start – Version Control with Git

A quick start guide for the developers, who are used to work with other version control systems, but consider switching to Git

Dmitry Sheiko

June 06, 2012
Tweet

More Decks by Dmitry Sheiko

Other Decks in Programming

Transcript

  1. Git branching model Master branch Hotfixes Dev. branch Release 1.0

    Feature branches TIME Tag 0.1 Tag 0.2 Tag 1.0
  2. Setup $git config --global user.name "Your Name" $git config --global

    user.email "[email protected]" $git config --global color.diff auto $git config --global color.status auto $git config --global color.branch auto
  3. Branching If we have a new feature request, which implementation

    concerns much of the source code, it would be safer to work on the feature in a separate branch. $git branch Feature1022 –m “Comment” $git checkout Feature1022 $git branch Create a branch Switch to the branch Show available branches
  4. Rebase $git log $git rebase -i HEAD~7 Take a look

    what revisions we have Combine the last 7 revisions
  5. Merging As we finished the requested feature development, we can

    merge the feature branch with the master branch $git checkout master $git merge Feature1022 $git branch -d Feature1022 Master branch Feature1022 Switch to the master branch Get rid of the feature branch
  6. Tagging We can tag specific points in history as being

    important. E.g. tag every stable version of the product before deploying. $git tag v1.1 –m “Comment” $git checkout tags/v1.1 $git tag $git tag –d v.1.1 $git push remote :refs/tags/v.1.1 Create a tag Switch to the tag Show available tags Remote tag in local repo Remote tag in remote repo
  7. Log We can see our commit history $git log --graph

    .. and much fancier $gitk --all
  8. Working with a remote repo Let’s associate our local repo

    to the new created remote repo $cd /repos/example-remote $git init --bare $cd /l/vhosts/os.htdocs/example $git remote add origin /repos/example-remote
  9. Push changes to a remote repo We can push our

    changes collected in the local repository to the remote one to share them with the team $cd /l/vhosts/os.htdocs/example $git push origin master Associated remote repo Branch
  10. Pull changes from a remote repo Pull allows us to

    get the latest changes from the remote repository. $cd /l/vhosts/os.htdocs/example $git pull origin master
  11. Creating patches Patch is a text file that contains changes

    to the source code. This file can be sent to someone else and this person can use this file to apply the changes to his/her local $git checkout mybranch $git commit -am "First commit in the branch“ $git format-patch origin/master $git checkout master $git apply 0001-First-commit-in-the-branch.patch Creates 0001-First-commit-in-the- branch.patch
  12. Git command aliases Put into .gitconfig anywhere in parent directory

    with following content: [alias] cd = checkout dir = branch ci = commit -a -m lg = log -p undo = reset –hard up = !git push origin master && git push origin --tags
  13. Git command aliases Now you can use shortcuts: $git cd

    SomeBranch $git dir $git ci “my comment“ $git up # this one pushes local commits and tags to the remote repo