Go to Post It doesn't make a team better if they have just one sponsor or if they have 100 sponsors. However, you should commend a team who struggled to pay the bill with a list of sponsors one hundred long for showing their strength, perseverance and love for participating in the FIRST robotics program. - MikeDubreuil [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 30-11-2015, 16:36
fovea1959's Avatar
fovea1959 fovea1959 is offline
Herder of programmers
AKA: Doug Wegscheid
FRC #3620 (The Average Joes)
Team Role: Mentor
 
Join Date: Jan 2011
Rookie Year: 2011
Location: St Joseph
Posts: 325
fovea1959 will become famous soon enough
Easy way to explain git to new programmers

We've been blessed with over 30 new students this year, of which about 10 want to program.

I think it's safe to state we'll be making heavy use of git branch/merge.

Does anyone have a succinct explanation of branch/merge suitable for consumption by brand-shiny-new programmers? I still have 3 sessions of classroom time, and I can spend one of them on this (with labs!)

I'm starting to roll my own based on the Pro-git explanation, but don't want to re-invent the wheel, especially since someone else's is likely to be rounder than mine....
  #2   Spotlight this post!  
Unread 30-11-2015, 16:44
JesseK's Avatar
JesseK JesseK is offline
Expert Flybot Crasher
FRC #1885 (ILITE)
Team Role: Mentor
 
Join Date: Mar 2007
Rookie Year: 2005
Location: Reston, VA
Posts: 3,608
JesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond reputeJesseK has a reputation beyond repute
Re: Easy way to explain git to new programmers

At work I rolled out Git to 50 veteran engineers back in 2013/14. It took lots of teaching modules for various levels of understanding. I've taught a few more newbie-type engineers since then. It was far easier to teach Git to the new guys since they weren't already mired in Dimensions or SVN type design workflows.

It will take 1-on-1 time - don't underestimate that. The key for me seemed to be to find the 1-2 engineers who understood it early and then became enthusiastic about it. They were able to help me explain different situations from different perspectives based upon their experiences with it.
__________________

Drive Coach, 1885 (2007-present)
CAD Library Updated 5/1/16 - 2016 Curie/Carver Industrial Design Winner
GitHub
  #3   Spotlight this post!  
Unread 30-11-2015, 16:46
jajabinx124's Avatar
jajabinx124 jajabinx124 is offline
Team 2052 Alumni
AKA: Kshitij Wavre
no team
Team Role: College Student
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Madison, WI
Posts: 534
jajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond reputejajabinx124 has a reputation beyond repute
Re: Easy way to explain git to new programmers

Has anyone used any online resources to teach git and had success? (such as codeacademy, etc.)
__________________
FRC Volunteer CSA (MRI off-season event, 2017 Lake Superior Regional, 2017 10,000 Lakes Regional) 2016 - Present
FRC 2052 KnightKrawler (Team Captain, Strategist, Scouting, Programming) 2013 - 2016

1 Division Win & Einstein Appearance
3 Division Quarter-Finalists
1 Regional Chairman's Award
5 Regional Wins, 3 Regional Finalists
3 MN State Championship Wins, 1 MN State Championship Finalist
Thanks to all our alliance partners who krawled with us: 41, 70, 225, 525, 1595, 2054, 2062, 2122, 2175, 2227, 2472, 2526, 2883, 2990, 3018, 3244, 3276, 3310, 3313, 3360, 3538, 3692, 4011, 4198, 4536, 4607, 4778, 5172, 5690
  #4   Spotlight this post!  
Unread 30-11-2015, 17:18
Rachel Lim Rachel Lim is offline
Registered User
FRC #1868 (Space Cookies)
Team Role: Student
 
Join Date: Sep 2014
Rookie Year: 2014
Location: Moffett Field
Posts: 239
Rachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond reputeRachel Lim has a reputation beyond repute
Re: Easy way to explain git to new programmers



From: http://xkcd.com/1597/
  #5   Spotlight this post!  
Unread 01-12-2015, 01:07
jkoritzinsky jkoritzinsky is offline
Registered User
AKA: Jeremy Koritzinsky
FRC #4786 (Nicolet F.E.A.R.)
Team Role: Mentor
 
Join Date: Apr 2014
Rookie Year: 2014
Location: Glendale, Wisconsin
Posts: 78
jkoritzinsky will become famous soon enoughjkoritzinsky will become famous soon enough
Re: Easy way to explain git to new programmers

I was just about to post the same xkcd comic.
__________________
Nicolet F.E.A.R. (Team 4786) - Aerial Assist - Programming Manager
Nicolet F.E.A.R. (Team 4786) - 2015+ - Junior Mentor

SuperScouter for FRC Developer
  #6   Spotlight this post!  
Unread 01-12-2015, 09:21
Arhowk's Avatar
Arhowk Arhowk is offline
FiM CSA
AKA: Jake Niman
FRC #1684 (The Chimeras) (5460 Mentor)
 
Join Date: Jan 2013
Rookie Year: 2013
Location: Lapeer
Posts: 542
Arhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to beholdArhowk is a splendid one to behold
Re: Easy way to explain git to new programmers

I've used git for many non professional things (some robotics, some game design) and I've found that the easiest way to get someone involved in git is to just hand them the app, hit commit, and see what happens. Once they see, they're usually like "oh this is so cool". Than after a while with basic commits and whatnot, you can teach them branching, pulling, etc. as you'd teach a subject in school.
__________________
FRC Team 1684 - Head Programmer (2013-2016)
FRC Team 5460 - Programming Mentor (2015-2016)

FIRST in Michigan - Technical Crew (2015-continuing)
  #7   Spotlight this post!  
Unread 01-12-2015, 09:32
Joey1939's Avatar
Joey1939 Joey1939 is offline
Registered User
AKA: Joey Holliday
FRC #1939 (Kuhnigits)
Team Role: Programmer
 
Join Date: Jan 2014
Rookie Year: 2014
Location: Kansas City, Missouri
Posts: 139
Joey1939 has a spectacular aura aboutJoey1939 has a spectacular aura aboutJoey1939 has a spectacular aura about
Re: Easy way to explain git to new programmers

My team has complied a list of resources here.
__________________


  #8   Spotlight this post!  
Unread 01-12-2015, 21:41
lucas.alvarez96's Avatar
lucas.alvarez96 lucas.alvarez96 is offline
Registered User
AKA: Lucas Alvarez
FRC #2576 (Chilean Heart)
Team Role: Mentor
 
Join Date: Dec 2013
Rookie Year: 2013
Location: Chile
Posts: 115
lucas.alvarez96 is a name known to alllucas.alvarez96 is a name known to alllucas.alvarez96 is a name known to alllucas.alvarez96 is a name known to alllucas.alvarez96 is a name known to alllucas.alvarez96 is a name known to all
Re: Easy way to explain git to new programmers

Quote:
Originally Posted by Rachel Lim View Post
This was basically our team during the 2015 season, though working with only 1 programmer and 1 mentor. I guess we'll have to read up on Git for the 10 new programmers for 2016
__________________
FRC 2576 2015-???: Mentor
FRC 2576 2013-2015: Programmer & Chairman's Presenter

Los Angeles Regional 2013: Gracious Professionalism Award | Los Angeles Regional 2014: Regional Chairman's Award

  #9   Spotlight this post!  
Unread 01-12-2015, 22:33
GreyingJay GreyingJay is offline
Robonut
AKA: Mr. Lam
FRC #2706 (Merge Robotics)
Team Role: Mentor
 
Join Date: Mar 2015
Rookie Year: 2015
Location: Ottawa, Canada
Posts: 737
GreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond repute
Re: Easy way to explain git to new programmers

Git can be hard to wrap your head around. I am used to using ClearCase at work for the past 10 years and when I jumped on a new project that used git, it was tough to keep up with it. Then I started mentoring FRC and the students are asking me questions about Git... and I don't know the answers
  #10   Spotlight this post!  
Unread 01-12-2015, 22:38
heuristics heuristics is offline
Registered User
FRC #3634
Team Role: Mentor
 
Join Date: Jan 2014
Rookie Year: 2014
Location: Trumbull, CT
Posts: 21
heuristics is on a distinguished road
Re: Easy way to explain git to new programmers

Codecademy just added a git course. I haven't tried it myself but it could be a good start.
  #11   Spotlight this post!  
Unread 01-12-2015, 22:44
tcjinaz tcjinaz is offline
Tim
FRC #3853
Team Role: Mentor
 
Join Date: May 2011
Rookie Year: 2011
Location: Arizona
Posts: 205
tcjinaz has a spectacular aura abouttcjinaz has a spectacular aura about
Re: Easy way to explain git to new programmers

Quote:
Originally Posted by heuristics View Post
Codecademy just added a git course. I haven't tried it myself but it could be a good start.
It is a good course to start, but I am going to have to cruise through it at least one more time. Git is a bit of a leap from the things I have been using lately, DesignSync and ICManage. It helps if one knows the Unix command line and can probe around a bit.

Tim
__________________
Software Mentor
3853 Pridetronics[

  #12   Spotlight this post!  
Unread 01-12-2015, 23:10
techhelpbb's Avatar
techhelpbb techhelpbb is offline
Registered User
FRC #0011 (MORT - Team 11)
Team Role: Mentor
 
Join Date: Nov 2010
Rookie Year: 1997
Location: New Jersey
Posts: 1,620
techhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond reputetechhelpbb has a reputation beyond repute
Re: Easy way to explain git to new programmers

Assuming no reference to a previous repository: Maven, Mercurial, SVN....
Here are some bullet points that could be polished up:

A git master (is actually itself a branch and often the first branch in a repository) contains your code release from an environment. It's essentially the work product as it comes together. Keep in mind that in enterprise environments you release code for testing in the development environment. Then clone the code into a QA environment(s) for system integration and business acceptance testing. Then clone the code potentially into a non-functional testing environment where you test to see what happens if something goes wrong. Then clone the code into the production environment. Each environment has an owner and a separation of duty in a large tightly restricted enterprise. Though in some small environments the completion of master in your development environment goes straight to production accumulating risk.
...
To update a project for release you merge to master. Someone who is a release manager can check your merge. Merges can sometimes fail and if they do you want someone experienced to fix it.
...
When you checkout master you get a local copy and you push your working effort back to a branch on that remote server. You can update your branch as you like. Whatever you put in your branch doesn't impact master until you make the merge request. You can switch branches without doing a commit to the remote git server doing a stash (do not confuse the Atlassian product previously called Stash with the operation).
...
A typical operation for a git user might look like this:
git add * (get all the changes to my local copy)
git commit -m 'I fixed the stack overflow' (commit this change and put a message on it)
git push (push it to the remote server)
...
A single git server can contain multiple repository.
...
Git has automation features like hooks. These programs or scripts can be activated by various events and perform tasks. For example a merge to master can cause an automatic build and deployment into your development environment. This can also be done with a CI/CD tool like Jenkins.
...
Git can be extended by adding custom commands.
...
Git can be wrapped by various web interfaces like: gitlab. These make administration easier.
...
Atlassian (JIRA/Confluence) makes a supported version of git in Stash now called BitBucket.
...
GitHub is git hosted as a service on the Internet. You can host git yourself as well.
...
Head in git is a pointer to generally the most recent commit. Assuming no one does something that trashes git history (and it can happen if someone goes in and tries to cover their tracks).
...
In git origin is usually the remote server.
...
Git supports tagging - but be aware that a git tag will apply to the entire repository which differs from similar behavior in other products. This feature can be used to mark versions of interest beyond head. Say you made version 1.1, 1.2 & 1.3. Say you did around 100 commits between those versions. You can tag the finals for each version so you can find them using the tag. This way if you need to roll back you have a place to quickly reference.
...
Git commit messages can not be easily altered after the fact. Tags have a similar behavior. If you want to have a scratch pad to put comments into your commits and change them later use git notes. Typically you keep the messages and tags brief and put long verbose comments into the notes because you can change them later. This can be leveraged for automation as well. Be aware the Internet based GitHub no longer supports git notes at least they stopped in the later part of 2014.

Last edited by techhelpbb : 01-12-2015 at 23:47.
  #13   Spotlight this post!  
Unread 01-12-2015, 23:18
jkoritzinsky jkoritzinsky is offline
Registered User
AKA: Jeremy Koritzinsky
FRC #4786 (Nicolet F.E.A.R.)
Team Role: Mentor
 
Join Date: Apr 2014
Rookie Year: 2014
Location: Glendale, Wisconsin
Posts: 78
jkoritzinsky will become famous soon enoughjkoritzinsky will become famous soon enough
Re: Easy way to explain git to new programmers

Quote:
Originally Posted by GreyingJay View Post
Git can be hard to wrap your head around. I am used to using ClearCase at work for the past 10 years and when I jumped on a new project that used git, it was tough to keep up with it. Then I started mentoring FRC and the students are asking me questions about Git... and I don't know the answers
The place I interned last summer used ClearCase. Coming from Mercurial and Git, ClearCase is extremely different. Actually, ClearCase is different from everything else out there today. I totally understand where you're coming from.
__________________
Nicolet F.E.A.R. (Team 4786) - Aerial Assist - Programming Manager
Nicolet F.E.A.R. (Team 4786) - 2015+ - Junior Mentor

SuperScouter for FRC Developer
  #14   Spotlight this post!  
Unread 01-12-2015, 23:50
feverittm's Avatar
feverittm feverittm is offline
Registered User
FRC #0997 (Spartans)
Team Role: Mentor
 
Join Date: Apr 2010
Rookie Year: 2010
Location: Corvallis, OR
Posts: 120
feverittm will become famous soon enoughfeverittm will become famous soon enough
Re: Easy way to explain git to new programmers

I was just looking at this today. I thought some of the examples in:
https://www.atlassian.com/git/tutori...ring-workflows
was reasonable. There are other pages in this site as well, but this was page seemed like a good intro (looking at the examples and following the workflows).
__________________
Floyd Moore
Mentor Electrical and Pneumatics
Team 997 - Spartan Robotics
Corvallis High School, Corvallis Oregon
  #15   Spotlight this post!  
Unread 01-12-2015, 23:58
GreyingJay GreyingJay is offline
Robonut
AKA: Mr. Lam
FRC #2706 (Merge Robotics)
Team Role: Mentor
 
Join Date: Mar 2015
Rookie Year: 2015
Location: Ottawa, Canada
Posts: 737
GreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond repute
Re: Easy way to explain git to new programmers

Our software subteam had so much "fun" with git last year that it sparked an inside joke which eventually became our team name!
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 08:52.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi