GITify Your Changes the Easy Peasy Lemon Squeezy Way Melissa Lefebvre mlefebvrebiblioorg Bibliomation Inc Git in a nutshell Git is basically a snapshot of your mini file system aka cloned repository that youve set up locally ID: 410235
Download Presentation The PPT/PDF document "How to" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
How to
GITify
Your Changes: the EasyPeasy Lemon Squeezy Way
Melissa Lefebvre
mlefebvre@biblio.org
Bibliomation Inc.Slide2
Git in a nutshell
“
Git is basically a snapshot of your mini file system (aka cloned repository) that you’ve set up locally.Every time you commit your project in git, it takes a picture of what all your files look like at that moment and stores a reference to that snapshot. It will only look at the changed files.” - Scott Chacon
Chacon, Scott.
Pro
Git
.
http://git-scm.com/bookSlide3
Git in a nutshell - Workflow
The basic Git workflow goes something like this:You clone Evergreen origin (master).You modify files in your working
branch.You stage the files.You do a commit, which takes the files as they are in the staging area and stores that snapshot to your Git directory.5) You push your changes to local git server OR your Evergreen working
branch.
Evergreen origin (master)
Local
git
server
Staging Area
Local Machine
(working branch)
Add
Push
Clone
Evergreen Working
Commit
Adapted from: Chacon
, Scott.
Pro
Git
.
http://git-scm.com/bookSlide4
Why on earth are you using Windows when all the cool kids are on Linux?
Photo by Ben ShumSlide5
Some git programs for WindowsSlide6
How to use git locally
Setting up Git for Windows
Install Git for Windows (http://msysgit.github.com/) this will give you Git Bash and Git GUIOpen Git GUI and select “Create New Repository” and Browse to your local C drive and create a folder
Under Edit>Options you’ll want to add your name an email address for both Global and local repos.
If you need an SSH key, you can generate one via Help>Show SSH Key
Go to Remote and Add
Name this repository and then enter the path of the remote repository. Check with your sys admin for access informationSlide7
How to use git locally
Creating branches and pushing changesGo to Branch>Create
Add your files from your production server that you’ve already edited to the folder you set up previouslyScan for file changesStage the changesWrite the commit statementSlide8
How to use git locally
Writing commit statementsFirst line should be the subject line, followed by a blank line, then a description, followed by a blank line, then a sign-off message
Example:Slide9
How to use git
locally Creating branches and pushing changes (con’t)
Sign offCommitPushSlide10
Is it
that easy?
Not just easy but “Easy peasy lemon squeezy”Slide11
How to use git locally
Upgrading and not loosing your changes
Image source: http://www.dinodigusa.com/images/Magic1.gifSlide12
Advanced
git
How to speak like a cool kidcherry-pickamend
rebase
merge
pullrequestSlide13
How to contribute to the community using git
1) Create an SSH key via PuTTYgen (if you don’t already have a key)2) Send your SSH key to the Evergreen administrators (gitadmin@evergreen-ils.org
) with a request for permission to an Evergreen “working” branch3) Set up git gui to connect to Evergreen repositorySlide14
How do I connect to Evergreen repository
If you didn’t clone the Evergreen repo back when we were setting up git gui open git
gui and Clone Existing RepositoryGo to http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git for a good guide on gitSlide15
How do I actually send my code to everyone in the community (11 easy steps)
1) Open git gui and switch branches to ‘master’2) Open git
bash and cd to your working repository on your C drive3) Type git pull4) Switch back to git gui and create a new branch called user/name you were given/module descriptionSlide16
How do I actually send my code to everyone in the community (con’t)
5) Edit the file (s) in NotePad ++6) Rescan7) Stage your change
8) Write your commit message9) Sign off10) Commit11) Push to your working branchSlide17Slide18
Don’t forget the bug ticket
1) Go
to https://launchpad.net/evergreen
and create an account if you don’t already have one.
2) Click Report a bug
3) Create a summary statement
4) Report the bug by entering the information
5) Expand “Extra Options”Slide19
©
Poundland Limited
Is it that easy? Not just easy but “Easy peasy lemon squeezy”Slide20
How do I pull code from others
Not easily via git gui
You will need to cherry-pick the commit via the command line. Slide21
How do I pull code from othersCherry-pick
Find the commit you want to testCopy the commit IDOpen git gui
and create a new branch to work inOpen git bash and navigate to “master” branchType git fetch --all or git fetch branch nameType git checkout (branch name from step 3)Type
git
cherry-pick –s (click Insert key to paste id # of commit message) Slide22
I cherry-picked the code now what?Testing and pushing
Test the codePush that branch back to working branchUpdate bug ticketSlide23
©
Papercut Writer
Is it that easy? Not just easy but “Easy peasy lemon squeezy”Slide24
Helpful git resources
Illustrated guide to Git on Windows (http://nathanj.github.com/gitguide/tour.html)Top 10 Git
tutorials for Beginners (http://sixrevisions.com/resources/git-tutorials-beginners/)Pro Git by Scott Chacon (available online at http://git-scm.com/book) Git – The simple guide (http://rogerdudler.github.com/git-guide) Understanding
Git
Conceptually (
http://www.sbf5.com/~cduan/technical/git
/
) Slide25
Image SourcesSlide 10: http://www.aabooks.co.nz/store/cooking-&-
drink-celebrity-chefs-easy-peasy-lemon-squeezy-seagar-p-501.htmlSlide 19: http://www.poundland.co.uk/product-range/a-z/assorted-easy-peasy-lemon-squeezy/
Slide 23: http://www.giftwrappedandgorgeous.co.uk/product-%27Easy_Peasy_Lemon_Squeezy%27_Mini_Papercut-10158.htm#prodDesc