• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Git(hub) for windows developers

Git(hub) for windows developers



Centralized Source Control Systems are so 90’s. Forget Team Foundation Server, Subversion,… Today it’s all about Distributed Source Control systems. Working with many developers on the same ...

Centralized Source Control Systems are so 90’s. Forget Team Foundation Server, Subversion,… Today it’s all about Distributed Source Control systems. Working with many developers on the same project, using lots of branches, managing versions and releases will no longer be a painful experience.
Let’s have a (first) look together at GIT and GITHub and how this will simplify your life as a .NET developer.



Total Views
Views on SlideShare
Embed Views



34 Embeds 762

http://bartwullems.blogspot.com 337
http://bartwullems.blogspot.co.uk 47
http://bartwullems.blogspot.be 41
http://bartwullems.blogspot.in 39
http://bartwullems.blogspot.ca 33
http://bartwullems.blogspot.com.au 27
http://bartwullems.blogspot.se 23
http://bartwullems.blogspot.nl 20
http://bartwullems.blogspot.fr 19
http://bartwullems.blogspot.de 18
http://bartwullems.blogspot.co.il 18
http://bartwullems.blogspot.com.es 14
http://bartwullems.blogspot.com.br 13
http://bartwullems.blogspot.no 11
http://bartwullems.blogspot.cz 10
http://bartwullems.blogspot.kr 10
http://bartwullems.blogspot.ru 10
http://bartwullems.blogspot.it 10
http://bartwullems.blogspot.ro 9
http://bartwullems.blogspot.ch 8
http://bartwullems.blogspot.pt 6
http://bartwullems.blogspot.jp 6
http://bartwullems.blogspot.com.ar 5
http://bartwullems.blogspot.dk 5
http://bartwullems.blogspot.co.nz 5
http://bartwullems.blogspot.mx 3
http://bartwullems.blogspot.tw 3
http://bartwullems.blogspot.sg 3
http://bartwullems.blogspot.co.at 2
http://bartwullems.blogspot.sk 2
http://bartwullems.blogspot.hu 2
http://webcache.googleusercontent.com 1
http://bartwullems.blogspot.fi 1
http://bartwullems.blogspot.com.tr 1



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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Bart (stelt ons allebei voor)
  • BartBefore we start some questions:Who has experience with source control?Who has experience with distributed source control like Git or Mercurial?Who knows github?Who is using github today?Important remark: this is an introductionary session
  • Bart
  • Bart
  • Kristof
  • KristofJust describe the slide, straightforward.Important is not to fiddle with anything other than the Working Directory. All the rest are managed by Git.
  • KristofFree, open source, fast.Full local copyBranching is first of all local, THEN you sync it with the server, so for all that matters the server doesn’t need to know that you’re developing changes on 3 seperate feature branchesOfcourse for backup related stuff it might (is) wise to sync them with at least one other server (if anything can go wrong, it will)Last point: since on the server the size is the same as your local repository, requirements are smaller. No need for a database server...
  • BartThrough the console pain
  • Bart
  • BartTrue= handing voor cross platform teams(unix & windows & …)False= mag niet op WindowsInput= voorkeur indien iedereen op zelfde platformUpdate:True (only applies on Windows) crlf -> lf at checkin, lf -> crlf at checkout (NO!)False = leave as is ---- this is what we needInput: transform CRLF -> LF at checkin, don’t touch checkout.
  • Bart
  • BartIntroduce yourself to gitGitconfig and ~/.gitconfiggitconfig: global settings look at: C:\\Program Files (x86)/Git/etc/gitconfig notice the setting "autocrlf = true" ~/.gitconfig: user settings file tell git about yourself and your machine first and your preferences to create this file.Username : gitconfig --global user.name Email : gitconfig --global user.email Color UI  colors git output : gitconfig --global color.ui trueThese settingsget written to your ~/.gitconfig fileShow config file and content (~ = C:\\Users\\ folder)Better alternative then SSH key is the Windows Credential Store helper:Download it here https://help.github.com/articles/set-up-gitCreate SSH key(we need this to connect to GitHub later)$ cd ~/.ssh : Checks to see if there is a directory named ".ssh" in your user directory$ ssh-keygen -t rsa -C "your_email@youremail.com“ Creates a new ssh key using the provided email$ ssh -T git@github.com :Attempts to ssh to githubInitialize repositoryCreate a new folder)$ cd ~mkdir communityday2012cd communityday2012Git initA new git repository is createdShow the created foldersStart SeeGit
  • Open Visual StudioCreate new applicationCopy the application content to the previously created folderAdd a readme.txt file to the created folderCheck the git status$ git status Too many files are includedAlso show result in SeeGitWe can solve this by adding a .gitignore filetouch .gitignoreGo to https://github.com/github/gitignore Select the correct .ignore file content and copy itCan also be configured for all projects : git config --global core.excludesfile ~/.global_ignore Check the git status$ git status Only the required files remainAlso show result in SeeGit
  • To add one file, do:$ Git add Readme.txt (IMPORTANT: case sensitive!)To add all files, do:$ Git add . This will add all files to the staging environmentCheck the current status$ GitstatusAlso show result in SeeGit
  • Let’s now commit the files to the repository$ git commit –m “Initial commit”Check the status$ git statusLet’s have a look at the commit history of your repository$ git logYou can view statistics about which files have changed and how many lines were added and removed from each file by adding the $ git log –stat (press q to quit the editor)Also show result in SeeGit
  • KristofImportant remark: only one working folder(!)Git branch  view master branchGit checkout -b devGit branch  view dev branchesChange something in “dev” branch(readme)Commit in that branchGit checkout masterChange something in the same file(readme)  causes merge conflictCommit in the master branchAlso show result in SeeGit(If needed stash changes if you don’t want to commit them.)  similar to Shelvesets in TFS
  • KristofSWITCH BRANCH to MASTER!!!!!  uses the same folder(!)Pull changes from devGit merge “dev”A merge is (unlike TFS) final  No local pending changes and commit(!)Use SeeGit to show resultsGitk  show history
  • Kristof
  • KristofJust read description, straightforward.
  • KristofLogin as a userShow site functionalityAdd SSH keyClick “Account Settings” > Click “SSH Keys” > Click “Add SSH key”Create (new)repositoryPush local changes to githubgit remote add origin https://github.com/Snakiej/Empty.gitgit push –u origin masterShow some keyboard shortcuts(shift-?)Show reports(graphs)
  • KristofForkLogin with other account( Bart)Fork repository from previous accountMake change to readmeAdd comment to lineSend pull requestPull requestsLogin with original accountReview pull request
  • Bart
  • Bart
  • Adding repositoriesYou can add any repository already on your hard drive by dragging a folder in from Explorer. If that folder is a Git repository, GitHub for Windows will import all of the history and connect it to your GitHub accounts. Another great way to add repositories is to clone them from GitHub.com. You can do that right in the application by browsing through your personal account and any organizations you belong to. You can also clone with one click from any repository page on GitHub.com. Just look for the Clone in Windows button. Command lineYou can pull up a PowerShell console within the context of any repository. GitHub for Windows even includes the amazing posh-git utility for your command line pleasure. SSH key managementIn most cases you don’t even need SSH keys. All repositories are cloned over HTTPS by default, and GitHub for Windows caches your credentials so you don’t have to keep entering your password for every remote action, even on the command line. For cases where you have an existing repository using an SSH remote, GitHub for Windows will seamlessly set up SSH for you. You will get an email and see a new key added to your accountBranches: local & remoteCreate repositoryFrom file system through drag & dropFrom clone in windows button on GitHubChange repository settings- add gitignore- change gitattributesCreate branchChange branchCommit changeMerge branchShow diffPush to github button
  • Bart
  • Bart
  • Bart

Git(hub) for windows developers Git(hub) for windows developers Presentation Transcript

  • #comdaybe Git(Hub) for Windows Developers Ordina Belgium Kristof Mattei & Bart Wullems
  • About us• Bart Wullems – .NET Application Architect @Ordina – http://bartwullems.blogspot.com – bart.wullems@ordina.be• Kristof Mattei – .NET developer @Ordina – http://kristofmattei.be – kristof.mattei@ordina.be
  • About Ordina• IT Consultancy Firm• Offices in Mechelen & Hasselt• 600+ employees, 80+ MS developers• 5 focus sectors: – banking, public, pharma, industry, teleco m
  • Agenda• Distributed Source Control• What’s Git?• Git Basics• MsysGit• Github• Github for Windows• Q&A
  • Distributed source control
  • About Version Control Local Version Centralized Control Systems Version Control Systems
  • About Version Control• Distributed Version Control Systems – No central repository – Disconnected – Fast
  • --distributed-even-if-your-workflow-isn’tWhat’s Git?
  • Git• Global Information Tracking – Git is a free and open source distributed version control system used as software configuration Management tool. – Git is a distributed version control system – Git does not use a centralized server. – Git runs on Linux, BSD, Solaris, Darwin, Windows, and other operating systems.
  • Git basics
  • Git BasicsThe Three States
  • git and 3 conceptual spaces• Git deals with 3 spaces. Each space is a self contained area of concern to git and to you. – Working Directory (e.g. testgit folder) • this is where you keep your current files visible in directory or folder. – Index or Stage (e.g. "testgit/.git/index") • this is where git keeps snapshot to be committed permanently to Repository – Repository (e.g. "testgit/.git/objects/*") • This is the history of commits, trees, blobs etc..
  • Advantages• Free• Local• Fast• Distributed• Small
  • msysGit
  • msysGit• Git client for Windows – http://msysgit.github.com/
  • LF and CRLF line endings• CRLF is for Windows and LF is for unix. – to keep cross platform development going smooth keep CRLF for windows and LF for unix – with autocrlf = true git converts your windows CRLF into LF internally• Our recommendation – autocrlf = false
  • Open “Git Bash”
  • First git commandsdemo
  • Codingdemo
  • Stagingdemo
  • Commitdemo
  • Branchdemo
  • Mergedemo
  • Github
  • What is Github?• https://github.com
  • GitHubdemo
  • Social codingdemo
  • Github for Windows
  • Github for Windows New• “Better Git on Windows”
  • Github for Windowsdemo
  • Learn More The next step is to read guides and books online. start with the git community book http://book.git-scm.com marekj | testr.us
  • Learn More• Git For Windows Developers by Jason Meridth• http://think-like-a-git.net/• http://gitref.org/
  • Q&A
  • Thank you!