• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Git Heaven with Wakanda
 

Git Heaven with Wakanda

on

  • 1,247 views

Git is the new gold standard when it comes to versioning in the Web age. Git is an open source, distributed version control system designed to handle everything from small to very large projects with ...

Git is the new gold standard when it comes to versioning in the Web age. Git is an open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Version control should always be used when doing software development and most open source projects use version control and there is no exception for Wakanda applications.

In this session we give an introduction to Git, we explain how to use it with Wakanda, the process of creating and cloning repositories, as well as working with branches in a distributed team environment, and finally dealing with merging source code with your team members.

Statistics

Views

Total Views
1,247
Views on SlideShare
1,235
Embed Views
12

Actions

Likes
2
Downloads
7
Comments
0

2 Embeds 12

http://lanyrd.com 11
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • What is Git?
  • http://bit.ly/linusongit
  • What is Git?
  • What is Git?
  • Let’s go pack and see the progression
  • Let’s go pack and see the progression
  • So, we’ve all done this: right-click, duplicate It starts to get unmanageable really fast. Whose ever gone back to their project and couldn’t remember which file is the correct one, or maybe what bits you wanted to save for later, or even why? Basically, we do this out of paranoia.
  • So, it didn’t take long for someone to come up with this. RCS, one of the first LVCS, was released in 1982 (29 years ago!) But if your computer crashes, it’s all gone.
  • So, the natural progression was to store things on the server, and projects like CVS, SVN and others popped up. CVS in 1990, SVN in 2000 Problem: everything is on the server. You need access to the server and you’d better not lose the server.
  • DVCS came along to solve a lot of the problems with existing VCS. Linux, for instance, switched to using BitKeeper to deal with their growth problems, and eventually switched to Git. Both Git and Mercurial popped up in 2005.
  • In many ways Distributed Version Control Systems (DVCS) solve a lot of problems. It retains the best aspects of both local and centralized VCS, and has several benefits on top of that.
  • One huge benefit is that almost all version control operations happen locally, aside from sync, and then only if sync is not between two local repositories.
  • None of these tasks require you to be connected to a server or any kind of network. You can be on a place 30,000 ft up and do this stuff.
  • That means…by transparent I mean you can literally inspect and see what Git is doing.
  • In many ways Distributed Version Control Systems (DVCS) solve a lot of problems. It retains the best aspects of both local and centralized VCS, and has sever beneifts on top of that.
  • Direct Acrylic Graph just means a graph where if you follow the nodes from one node to the next you can’t get back to that node. Doesn’t really matter…just think of it as “snapshot” storage.
  • So the point is that with the snapshot model, each commit takes a full snapshot of your entire working directory. That might seem weird, but has some advantages and it can be done really efficiently. We’ll see when we get into the internals. Also, this is kind of how we think as developers. Typically you commit when your codebase reaches a certain state regardless of which files you had to mess with.
  • Git is a distributed VCS that uses the snapshot storage model.
  • Git is a distributed VCS that uses the snapshot storage model.
  • What is Git?
  • Git will force you to add a commit message.
  • Git does not have a concept of a central server. It only has the concept of nodes -- other repositories. That can be another computer, or somewhere else on your file system.
  • Git will force you to add a commit message.
  • Git will force you to add a commit message.
  • Git will force you to add a commit message.
  • Git will force you to add a commit message.

Git Heaven with Wakanda Git Heaven with Wakanda Presentation Transcript

  • Git Heaven with Wakanda Juergen Fesslmeier Wakanda Product Manager @chinshr
  • About Git
  • Linus Torvalds http://bit.ly/linusongit
  • “Im an egotistical bastard,and I name all my projects after myself. First Linux, now git’.” Linux Torvalds on Git naming
  • Projects using Git• Git • Rails• Linux • Android• Perl • PostgreSQL• Eclipse • KDE• Qt • Gnome• Wakanda
  • What is Git?
  • Git is an open source, distributed version control system designed for speed and efficiency.
  • git-scm.com
  • Open source: git-scm.com
  • History ofVersioning
  • Local File System
  • Local Version Control System
  • Centralized Version Control
  • Distributed Version Control
  • Distributed Version Control System
  • Everything is local (almost)
  • No Network required• Create repo • Status• Commit • Revisions• Merge • Diff• Branch • History• Rebase • Bisect• Tag • Local sync
  • Advantages• Everything is fast• Everything is transparent• Every clone is a backup• You can work offline
  • Designed for Speed and Efficiency
  • Snapshots, not Patches
  • Delta vs. Snapshot
  • How is it differentfrom cvs, svn, etc.?
  • Storage vs. Distributed
  • How do I use Git?
  • How to Install GitInstallers for Windows, Max, Linuxhttp://git-scm.comHomebrew on Mac$ brew install gitApt on Linux$ apt-get install git
  • Before you startConfigure Git$ git config --global user.name"Juergen Fesslmeier"$ git config --global user.email”j@4d.com"
  • New ProjectCreate and initialize the Git Directory (.git)$ mkdir project$ cd project$ touch wakanda.js$ git init
  • Existing ProjectCreate and pull down remote repositories.$ git clonegit://github.com/Wakanda/WAF.git
  • .gitignoreSpecify files which will be ignored by Git$ cat .gitignore.DS_Storedata/temporary files/Logs/Build*.breakpoints
  • Git staging and status$ git status# On branch master## Initial commit## Untracked files:# (use "git add <file>..." to include in what willbe committed)## wakanda.jsnothing added to commit but untracked files present(use "git add" to track)
  • StagingStage files to the index.$ git add .
  • CommittingCreate a commit tagged with a message.$ git commit -m "first commit"
  • Remotes
  • Remote == URLProtocols Examplessh:// git@github.com:Wakanda/WAF.githttp[s]:// https://github.com/Wakanda/WAF.g itgit:// git://github.com/Wakanda/WAF.gitfile://rsync://ftp://
  • Create a remote repositoryCreate a commit tagged with a message.•On your own server•github.com•bitbucket.org•beanstalkapp.com•Many more…
  • Adding remoteConnect your local with a remoterepository is called “adding remote”$ git add remotegit@github.com:chinshr/project.git
  • Project config file$ cat .git/config[remote "origin"] url =git@github.com:chinshr/project.git fetch =+refs/heads/*:refs/remotes/origin/*
  • Adding remoteConnect your local with a remote repo$ git push -u origin masterCounting objects: 5, done.Delta compression using up to 8 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (5/5), 384 bytes,done.Total 5 (delta 0), reused 0 (delta 0)To git@github.com:chinshr/project.git * [new branch] master -> master