> Something Ashley and I had been discussing during our original lesson 
> planning was “What if we flipped the script? 
> How much of the initial learning could we do entirely on GitHub.com, to 
> introduce how you coordinate and collaborate and
> get them to see the multi-user coordination benefits more clearly, and then 
> introduce the command line later?”

I do a mixed version of this. I had used SWC git tutorial in the past, but I 
was never very happy as I felt that there was a lot of "dark magic" at the 
start. I now use a tutorial which starts with an existing repo on github and 
only later doing a new repo:

http://cdn.rawgit.com/luispedro/talk-git-intro/master/slides.html#1

We first explore the history of an existing github project (I typically pick 
the repo with the tutorial for the previous lesson as this can be 
recognizable). In the slides you cannot see, but there is a bit of just 
exploring the github interface at the beginning. I hope to demonstrate the 
value of the whole endeavor before going into the weeds of git.

When the learners clone from the online repo, I show the correspondence between 
what github is showing and what they can see with the command line (through 
"git log", for example). So, it's not a pure github lesson, but I lean on it 
heavily.

Later, we do "git init" and collaboration through github and it looks like the 
swc lesson.

HTH,
Luis
--
Luis Pedro Coelho | EMBL | http://luispedro.org
http://orcid.org/0000-0002-9280-7885


>  


> We went with Steve’s version in the order written in order to give it a test 
> run for reporting back to the community, but that might also be an idea worth 
> considering as another choice among the options.
>  
>  People who are used to web-based Google Docs and Word Online versions of 
> version control would find the GitHub web interface more familiar to start 
> with, and they could really take advantage of Git versioning and pull 
> requests for multi-file productions like
 publications via the web interface with less “fear factor” than the command 
line can create. (I was surprised to get command line fear factor from a group 
of IT pros, but it was mentioned in the feedback!)

>  


> It would also put collaboration in the foreground – when Git goes into a 2 
> hour time window, sometimes you don’t actually get to the multi-user part of 
> it. If there was a “starts with GitHub” variant that begins with 
> collaboration and pull
 requests, because the “add and commit and push” are by definition already 
handled by the web interface, I could see that being helpful to teams that need 
to figure out how to coordinate multiple files as pieces of a larger project, 
whether or not the files
 are text files.


>  


> Two more cents.  😊


>  


> Sent from  Mail[https://go.microsoft.com/fwlink/?LinkId=550986] for Windows 10


>  


> *From: *Christina Koch[mailto:[email protected]]
>  *Sent: *Friday, January 12, 2018 9:40 AM
>  *To: *Bond, Steve (NIH/NHGRI) [F][mailto:[email protected]]
>  *Cc: *Strong, Dena L[mailto:[email protected]];  Software Carpentry 
> Discussion[mailto:[email protected]]
>  *Subject: *Re: [Discuss] Git and Github lesson (follow-up)

>  


> Hi all, 
>  
> Jumping in a bit late, but this development is great!  I like the idea of 
> offering two flavors of the git/github lesson -- a more command line based 
> one and this more github flavored approach.  I also like the idea of 
> gathering a list of alternative things
 to edit -- either replacing Dracula with another option or having 2-3 ways to 
teach (how we handle that infrastructure can be part of a later discussion). 
>  
>  
> Thanks all!
>   
> Christina 
> 
> On Wed, Jan 10, 2018 at 8:38 AM, Bond, Steve (NIH/NHGRI) [F] 
> <[email protected]> wrote:
>  
>> Hi Dena,____


>> Thanks for all of the feedback! And I really like your visual aids. ____


>> I’ll try to spend some time to modify the clone/conflict section and add a 
>> few new sections to go through reset and branches.____


>> Congrats on a successful workshop.____


>> -Steve ____


>> __ __


>> *From:  *"Strong, Dena L" <[email protected]>
>>  *Date: *Tuesday, January 9, 2018 at 7:24 PM
>>  *To: *"Bond, Steve (NIH/NHGRI) [F]" <[email protected]>, Software 
>> Carpentry Discussion <[email protected]>
>>  *Subject: *RE: [Discuss] Git and Github lesson (follow-up)____

>> __ __


>> Reporting in: I just taught from Steve’s version today, and it went 
>> fantastically. I’ve never taught Git before. I really liked teaching with 
>> this structure – the Dracula thing never made sense to me, whereas
 both the audience and I didn’t have any problems following the “all right, 
we’re adding new features to software under development” description. ____


>>  ____


>> I would enthusiastically endorse anyone who wants to teach from this version 
>> to give it a go!____


>>  ____


>> (I was particularly lucky since Maxim Belkin, my co-instructor, is 
>> brilliant, friendly, and enthusiastic! My original co-instructor had a house 
>> emergency and I’m really glad Max could step in. I would have been
 flailing a lot when the IT pros I was teaching asked things outside my 
knowledge and expertise level, but I would have been doing that with any lesson 
plan.)____


>>  ____


>> The TL;DR and a physical mechanism for conveying concepts below:____


>>  ____


>> This audience: 6 IT professionals ranging in experience from “I’ve never 
>> touched Git before” to “I’ve been using it on and off for a few years, but I 
>> still don’t get it.”____


>>  ____


>> The method: Steve’s non-Dracula version of git-novice, a slide deck for 
>> supplemental concept walk-throughs, and a bunch of file folders for physical 
>> representation of what was happening with each edit in each
 step. All my links are collected up at 
https://tinyurl.com/itpro-gitnotes[https://urldefense.proofpoint.com/v2/url?u=https-3A__tinyurl.com_itpro-2Dgitnotes&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=ULyG963VMTCvsd7WiBcmOEPNcxrcL9SXHcxIsn9F5jk&e=].____


>>  ____


>> On the potential confusion point Steve mentions below: Two of our pairs were 
>> OK with the fork vs clone thing and worked out how not to have name space 
>> collisions and knew where they were at. However, our third
 pair was struggling and Maxim helped them out a lot. As suggested below, I 
think revising it so people are forking from a different repository than you’ve 
just cloned from would help reduce the name space collision headaches. And 
people were also finding that
 they could just accept the pull request because they already had access after 
having traded authorizations for collaboration. (So maybe have them fork from 
the instructor’s version instead?)____


>>  ____


>> We also discovered that either there weren’t instructions explicitly telling 
>> you to go up a directory from your previous working directory before running 
>> a clone command, or it was well enough buried that 2 of
 our 6 ended up cloning their new stuff into the folder they were already 
working in. So more clearly spelling out “before you start a new project, go 
back to your ~ directory” could be helpful to add too?____


>>  ____


>> Because these were IT pros, they were more interested in complex workflows, 
>> resets, “hitting the undo button,” and continuous integration capabilities 
>> than in open science and R studio, so we went off the lesson
 plan at the end of step 9 and Max freestyled branching, merging, resets, and 
travis-ci.____


>>  ____


>> I think it would be worth considering adding “how do you roll back” to the 
>> course – they were really interested in branching and git reset and git 
>> checkout, which don’t get touched on in the major material. One
 poor individual had been manually undoing all his changes to get back to 
matching the master version whenever he wanted to retrace his path, and I think 
branches and git reset have changed his world. Food for thought?____


>>  ____


>> A teaching aid I found helpful: A “folders and notes” setup for physically 
>> demonstrating what goes where at what step. (Image attached – in actual 
>> class I put working-space on the left and repository on the right
 to match reading order; this photo was when I was setting up mirrored versions 
to test drive.)____


>>  * Working directory: Papers in front of you ____
>>  * Edits: Sticky notes that get put on a thing in your working directory____
>>  * Stage: A folded-over piece of paper labeled “stage” (because I only had 
>> manila or hanging folders, and the inner folders were commits)____
>>  * Commit: “You take everything that’s in stage, and put it in this manila 
>> folder. Then the manila folder goes into your local repository hanging 
>> folder. You
 get more and more manila-folder commits as you add new versions to your local 
repository, and each of them has its own label – that’s this hash tag right 
here…”____
>>  * Repositories: Two hanging folders of the same color, one in front of the 
>> person (local) and another in a box at the end of the room 
>> (remote/GitHub.com). ____
>>  ____


>> It seemed to help people visualize the differences between add, commit, and 
>> push as I walked them through things, and the manila-folder layer gave some 
>> starter ground work for the difference between clone (“Blue wants to edit on 
>> Pink’s
 project, so Blue grabs a manila commit folder from Pink’s remote folder and 
puts it in Blue’s local folder in front of them”) and fork  (“Blue doesn’t want 
to edit in Pink’s repository, Blue wants their own. So first we copy Pink’s 
manila folder commit into
 Blue’s remote directory, and then Blue has their own working space for this 
project, and here’s how Blue can give Pink some edits with a pull request.”) I 
hadn’t worked out how to simulate branching because I knew Maxim would handle 
that the way he preferred
 to, but everything up to that point seemed to work fine.____


>> I’d never thought I’d feel comfortable teaching Git, because I don’t use it 
>> in my working life. But we needed teachers, so I dove in, and I loved this 
>> lesson structure, and I want to give a huge thank you to
 both Steve (for providing the lesson structure) and Maxim (for being the 
safety net and expert guru all at the same time). :D____


>>  ____


>> *From:* Discuss [mailto:[email protected]] *On 
>> Behalf Of *Bond, Steve (NIH/NHGRI) [F]
>>  *Sent:* Tuesday, December 05, 2017 1:38 PM
>>  *To:* Software Carpentry Discussion <[email protected]>
>>  *Subject:* Re: [Discuss] Git and Github lesson (follow-up)____

>>  ____


>> Hi All,____


>> For a bit more context, we decided to strip the Dracula backdrop out of the 
>> git lesson completely to give our workshop participants another opportunity 
>> to write little scripts. The example we settled on was unit conversions 
>> (dollars-to-cents,
 minutes-to-hours, etc.). We also wanted to change the focus to the GitHub UI, 
because that is how the other instructors and I generally manage repositories 
on a day-to-day basis. It seemed weird to spend time showing students how to 
initialize a local repository
 and then turn around and say they probably won’t often do it that way.____


>> In practice, the reworked lessons have gone reasonably well. Depending on 
>> the class, though, it has gotten a bit sketchy when we move into 
>> collaboration and conflict resolution. In the lesson as currently written, 
>> students are asked to
 pair up and then create repositories that they then reciprocally share. 
Unfortunately, people tend to get confused about which repository they are 
modifying, which one is their own, and which is their partner’s. It might make 
more sense to have the instructor
 create a central repository that everyone clones and edits. Then we could 
create a conflict that affects everyone the same way.____


>> It’s been a while since our last workshop, so the material hasn’t been 
>> getting much attention. If there is sufficient interest from the community 
>> though, I’m happy to facilitate further refinements on my own fork or work 
>> with the core team
 on the main SWC version.____


>> Best,____


>> -Steve____


>>  ____


>>  ____


>> *From:  *Anelda van der Walt <[email protected]>
>>  *Date: *Tuesday, December 5, 2017 at 10:39 AM
>>  *To: *Software Carpentry Discussion <[email protected]>
>>  *Subject: *[Discuss] Git and Github lesson (follow-up)____

>>  ____


>> Dear all,
>>  
>>  Back in July 2017 I started a conversation on the discuss list about 
>> alternative Git/Github lessons that exist in the Carpentry community [1]. So 
>> many of you responded with suggestions about how you have dropped the 
>> Dracula example or augmented it with episodes
 on things like Git GUI or Github and more. Thanks very much to everyone who 
responded.
>>  
>>  One of the first lessons I was pointed to, was Steve Bond's (copied on this 
>> email) lesson [2] which was originally forked from the SWC git novice 
>> lesson, but introduces Github and constantly show how to do things both in 
>> git and github.
>>  
>>  Last week we ran a workshop at NWU where we trialled Steve's lesson. I 
>> chose this lesson as it was mature enough to use off the shelf (Steve had 
>> put a lot of effort in to make sure the lesson is refined). 
>>  
>>  
>>  Feedback from the workshop:____

>>  * It was great to introduce the power of local repositories and connect 
>> that with online repositories and collaboration.____
>>  * The lesson makes version control much more accessible even for learners 
>> who are not yet comfortable on the commandline.____
>>  * The switching adds cognitive load but we went very slow and got good 
>> feedback.____
>>  * I veered off the script to spend some time introducing all the things 
>> that can be clicked on in the Github interface and people found that very
 valuable, but I don't know how to incorporate this as an episode in the lesson 
making it practical?____
>>  * We didn't get to the collaboration part even though we had time to spare 
>> as people's brains were fried by late Friday afternoon. We ended the workshop
 on a high. The lesson includes screenshots for every step of the way so I 
recommended people referred back to the lesson when they get to collaboration 
and conflict resolution.____
>> Afterwards a colleague did a short demo of how she uses Git from RStudio and 
>> another colleague showed the same for his text editor (Visual Studio Code 
>> [3] - available for Mac, Windows, Linux). This was really helpful to show 
>> people how they can use even
 better tools to be more efficient and adopt version control easier.____


>> I'm wondering if the community would like to try out Steve's lesson as 
>> alternative to Dracula and provide some feedback? Maybe this is a low 
>> hanging fruit waiting to be picked and solve some of our git 
>> teaching/learning problems?____


>> Steve already did most of the work...____


>>  ____


>> What do you think?____


>>  ____


>> Thanks, ____


>>  ____


>> Anelda____


>>  ____


>> [1]  
>> http://lists.software-carpentry.org/pipermail/discuss/2017-July/005319.html[https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.software-2Dcarpentry.org_pipermail_discuss_2017-2DJuly_005319.html&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=R-qwCx8hDJgxUEMYg5KHVM3Rv6s0UOgzY9MQuudYiS0&e=]
>>  ____


>> [2]  
>> https://github.com/biologyguy/git-novice[https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_biologyguy_git-2Dnovice&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=B3LbliHbOKBp4k1-MWrBa26QViHAlgZme2YBjHjt4pQ&e=]____


>> [3]  
>> https://code.visualstudio.com/docs/supporting/faq[https://urldefense.proofpoint.com/v2/url?u=https-3A__code.visualstudio.com_docs_supporting_faq&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=hNtoHJBFVDwgL_JxvrLsvea1LkfbxPAdha5VSobiek0&e=]____


>> 
>> _______________________________________________
>>  Discuss mailing list
>>  [email protected]
>>  
>> http://lists.software-carpentry.org/listinfo/discuss[https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.software-2Dcarpentry.org_listinfo_discuss&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=IGgiKVMUs1b75D_mOa2G_wfh6kWuTNschdUTkmpY4gs&e=]
> 
> 
> 
> --
>  
> Christina Koch - Research Computing Facilitator, 
> University
 of Wisconsin - 
Madison[https://urldefense.proofpoint.com/v2/url?u=http-3A__www.wisc.edu_&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=bmdp6Yj_wn8mZ7iegqvyjFEXqIFLh2H9RJZxo44-yRE&e=],
  Center for High Throughput 
Computing[https://urldefense.proofpoint.com/v2/url?u=http-3A__chtc.cs.wisc.edu_&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=lkFTiUTel3PUZ5gCknGPn0psDtPnKd7L7m9seEjE6QE&e=]
> Wisconsin
 Institute for 
Discovery[https://urldefense.proofpoint.com/v2/url?u=http-3A__wid.wisc.edu_&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=o6UVqpxuRZ8OTnCt6FVmL_nbGa6VAG5OhyooRNGB5pQ&e=];
 Advanced
 Computing 
Initiative[https://urldefense.proofpoint.com/v2/url?u=http-3A__aci.wisc.edu_&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=4DvYt9sftiAB2HiH5qV1zDRj3GGEjjFbCfFXhuI-yxU&e=];
  
ACI-REF[https://urldefense.proofpoint.com/v2/url?u=https-3A__aciref.org_&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=tgz_4HjUfwiXNgPaj-jCObQrrADaA41ZdLBwCaqH6rY&e=]
> email: [email protected] // phone: (608) 316 - 4041 // calendar:  
> tinyurl.com/ChristinaCHTC[https://urldefense.proofpoint.com/v2/url?u=http-3A__tinyurl.com_ChristinaCHTC&d=DwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=rD4OA1kkL0S4v1qYK9k-ja5g5j8GrEgKciJJhx3Vkj8&m=p7qQrGLTNvMswazA0VMvQ-rNOAKR4V7H6b7dkQlOCLg&s=2Rg1-5toqMInKwYkYuwnlV-Me4ROlWKtioLPioQfi_s&e=]
> _________________________________________________
> Discuss mailing list
> [email protected]
> http://lists.software-carpentry.org/listinfo/discuss
_______________________________________________
Discuss mailing list
[email protected]
http://lists.software-carpentry.org/listinfo/discuss

Reply via email to