Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teaching Github (and git) via Github Desktop and other GUI tools #340

Open
cmacdonell opened this issue Sep 6, 2016 · 13 comments
Open

Teaching Github (and git) via Github Desktop and other GUI tools #340

cmacdonell opened this issue Sep 6, 2016 · 13 comments

Comments

@cmacdonell
Copy link

@cmacdonell cmacdonell commented Sep 6, 2016

Initial email from Matthew Gidden:

Hi everyone,

I searched the list history and didn't see a similar topic already posted, so apologies if this is a rehash of a previous conversation.

I'm going to be teaching a version of the git novice lessons next week to an audience that does not feel comfortable on the command line. My goal will be to use Github Desktop [1] which provides a (reasonably nice) GUI on top of common interactions with local and remote repositories. I expect to walk through the GUI interactions in approximately the same order as the lessons while having some conceptual slides as I go along.

I have a few questions for the list:
Has someone else taught a similar course? Perhaps we can connect off list for quick ideas/lessons learned (I will be new to teaching with a GUI..).
Is there interest in developing some sidecar lessons to git-novice that use the github GUI?
Philosophically, is teaching git without the CLI antithetical to SWC's core mission (i.e., is it doing more harm by obfuscating the mechanics of the underlying tool)?
I'd enjoy any input/suggestions you all may have.

Cheers,
Matt Gidden

@noamross
Copy link

@noamross noamross commented Sep 6, 2016

Here is a nice rundown of git GUI client options and why to use them by Jenny Bryan: http://happygitwithr.com/git-client.html . This was from a short workshop that focussed on using git and github with R, from both the command line and the RStudio GUI - the rest of material may be useful as well.

@njamescouk
Copy link

@njamescouk njamescouk commented Sep 6, 2016

FWIW I find sourcetree usable, but like Github desktop it won't run on linux. GitKraken leaves me completely mystified; it seems to require in depth knowledge of git, which I don't have and don't particularly want.

@gidden
Copy link

@gidden gidden commented Sep 7, 2016

Hey @njamescouk, I'm curious if you could flesh out your comments on GitKraken a bit more? Specifically, what are the mystifying aspects of it? I'm thinking about using it for a lesson, but I learned on the command line so perhaps it seemed more straightforward to me. Right now I'm debating between kraken and source tree and would love to hear other's opinions of their relative pros/cons.

@njamescouk
Copy link

@njamescouk njamescouk commented Sep 7, 2016

Hi,

The short story is that I don't understand git other than as a way of
saving snapshots of part of a local file system. I can do this with
sourcetree, but not with gitkraken. I interact with github either via
downloading or the command line.

More (irrelevant) detail follows:

My set up is idiosyncratic. My main machine is air gapped windows so I
mostly use git locally in a straight line, ie no branches or fancy
footwork. I don't understand git and quite frankly would rather not know
anything about it. In my brief professional career I used sourcesafe,
which is buggy but I had an adequate mental model of it. I used
mercurial for a while on my machine but abandoned it when it chewed some
files up.

So on my machine I use sourcetree as described above. I don't do
staging, I just commit everything when I start getting anxious about the
state of the program I'm working on. It does diffs and logs which are
useful sometimes, it updates automatically which is nice and I
understand what is happening. On the very rare occasions I need to
branch I just copy everything into another directory in order not to get
wrapped up in some hideous fight with git.

I bought a laptop and put kubuntu on it for swc purposes and I've fooled
about with gitk git cola and gitkraken. My experience with mainstream
git is minimal. I managed to do the pull request thing for instructor
training via the command line and I'm in the throes of trying to update
the diagram I did. I can't actually remember how I did the git thing so
will go to the swc git lesson again.

Currently I can't even get Gitkraken to see any repos, local or remote.
When it was seeing them I couldn't seem to update my local copy; the gui
doesn't seem to hide or abstract git into something sensible, you have
to be aware of the minutiae of every last concept and command.
Eventually I'll find a modus vivendi, but at age 60 I find I'm less
enamoured with cool new technology and increasingly impatient with
things I don't understand.

let me know if you want more detail,

best wishes

NickJ

On 07/09/16 08:53, Matthew Gidden wrote:

Hey @njamescouk https://github.com/njamescouk, I'm curious if you
could flesh out your comments on GitKraken a bit more? Specifically,
what are the mystifying aspects of it? I'm thinking about using it for
a lesson, but I learned on the command line so perhaps it seemed more
straightforward to me. Right now I'm debating between kraken and
source tree and would love to hear other's opinions of their relative
pros/cons.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#340 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKDLezbyfNVkG4M47fEWKjFuejbWSCKdks5qnm1ugaJpZM4J2JMV.

@gidden
Copy link

@gidden gidden commented Sep 8, 2016

Thanks for your in depth reply, Nick. Much appreciated!

On Wed, Sep 7, 2016 at 11:57 PM, nick james notifications@github.com
wrote:

Hi,

The short story is that I don't understand git other than as a way of
saving snapshots of part of a local file system. I can do this with
sourcetree, but not with gitkraken. I interact with github either via
downloading or the command line.

More (irrelevant) detail follows:

My set up is idiosyncratic. My main machine is air gapped windows so I
mostly use git locally in a straight line, ie no branches or fancy
footwork. I don't understand git and quite frankly would rather not know
anything about it. In my brief professional career I used sourcesafe,
which is buggy but I had an adequate mental model of it. I used
mercurial for a while on my machine but abandoned it when it chewed some
files up.

So on my machine I use sourcetree as described above. I don't do
staging, I just commit everything when I start getting anxious about the
state of the program I'm working on. It does diffs and logs which are
useful sometimes, it updates automatically which is nice and I
understand what is happening. On the very rare occasions I need to
branch I just copy everything into another directory in order not to get
wrapped up in some hideous fight with git.

I bought a laptop and put kubuntu on it for swc purposes and I've fooled
about with gitk git cola and gitkraken. My experience with mainstream
git is minimal. I managed to do the pull request thing for instructor
training via the command line and I'm in the throes of trying to update
the diagram I did. I can't actually remember how I did the git thing so
will go to the swc git lesson again.

Currently I can't even get Gitkraken to see any repos, local or remote.
When it was seeing them I couldn't seem to update my local copy; the gui
doesn't seem to hide or abstract git into something sensible, you have
to be aware of the minutiae of every last concept and command.
Eventually I'll find a modus vivendi, but at age 60 I find I'm less
enamoured with cool new technology and increasingly impatient with
things I don't understand.

let me know if you want more detail,

best wishes

NickJ

On 07/09/16 08:53, Matthew Gidden wrote:

Hey @njamescouk https://github.com/njamescouk, I'm curious if you
could flesh out your comments on GitKraken a bit more? Specifically,
what are the mystifying aspects of it? I'm thinking about using it for
a lesson, but I learned on the command line so perhaps it seemed more
straightforward to me. Right now I'm debating between kraken and
source tree and would love to hear other's opinions of their relative
pros/cons.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/swcarpentry/git-novice/issues/
340#issuecomment-245203584>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
AKDLezbyfNVkG4M47fEWKjFuejbWSCKdks5qnm1ugaJpZM4J2JMV>.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#340 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABVAEQK35ycSSb23UQD20HCXhUpUdoltks5qnzNCgaJpZM4J2JMV
.

@njamescouk
Copy link

@njamescouk njamescouk commented Sep 9, 2016

via hacker news: http://ohshitgit.com/


On Thu, 9/8/16, Matthew Gidden notifications@github.com wrote:

Subject: Re: [swcarpentry/git-novice] Teaching Github (and git) via Github Desktop and other GUI tools (#340)
To: "swcarpentry/git-novice" git-novice@noreply.github.com
Cc: "nick james" nick.james150@yahoo.com, "Mention" mention@noreply.github.com
Date: Thursday, September 8, 2016, 12:57 AM

Thanks for your in depth reply, Nick.
Much appreciated!

On Wed, Sep 7, 2016 at 11:57 PM, nick james notifications@github.com
wrote:

Hi,

The short story is that I don't understand git other
than as a way of
saving snapshots of part of a local file system. I can
do this with
sourcetree, but not with gitkraken. I interact with
github either via
downloading or the command line.

More (irrelevant) detail follows:

My set up is idiosyncratic. My main machine is air
gapped windows so I
mostly use git locally in a straight line, ie no
branches or fancy
footwork. I don't understand git and quite frankly
would rather not know
anything about it. In my brief professional career I
used sourcesafe,
which is buggy but I had an adequate mental model of
it. I used
mercurial for a while on my machine but abandoned it
when it chewed some
files up.

So on my machine I use sourcetree as described above. I
don't do
staging, I just commit everything when I start getting
anxious about the
state of the program I'm working on. It does diffs and
logs which are
useful sometimes, it updates automatically which is
nice and I
understand what is happening. On the very rare
occasions I need to
branch I just copy everything into another directory in
order not to get
wrapped up in some hideous fight with git.

I bought a laptop and put kubuntu on it for swc
purposes and I've fooled
about with gitk git cola and gitkraken. My experience
with mainstream
git is minimal. I managed to do the pull request thing
for instructor
training via the command line and I'm in the throes of
trying to update
the diagram I did. I can't actually remember how I did
the git thing so
will go to the swc git lesson again.

Currently I can't even get Gitkraken to see any repos,
local or remote.
When it was seeing them I couldn't seem to update my
local copy; the gui
doesn't seem to hide or abstract git into something
sensible, you have
to be aware of the minutiae of every last concept and
command.
Eventually I'll find a modus vivendi, but at age 60 I
find I'm less
enamoured with cool new technology and increasingly
impatient with
things I don't understand.

let me know if you want more detail,

best wishes

NickJ

On 07/09/16 08:53, Matthew Gidden wrote:

Hey @njamescouk https://github.com/njamescouk, I'm curious if you
could flesh out your comments on GitKraken a bit
more? Specifically,
what are the mystifying aspects of it? I'm
thinking about using it for
a lesson, but I learned on the command line so
perhaps it seemed more
straightforward to me. Right now I'm debating
between kraken and
source tree and would love to hear other's
opinions of their relative
pros/cons.


You are receiving this because you were
mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/swcarpentry/git-novice/issues/
340#issuecomment-245203584>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/

AKDLezbyfNVkG4M47fEWKjFuejbWSCKdks5qnm1ugaJpZM4J2JMV>.


You are receiving this because you are subscribed to
this thread.
Reply to this email directly, view it on GitHub
#340 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABVAEQK35ycSSb23UQD20HCXhUpUdoltks5qnzNCgaJpZM4J2JMV
.

--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#340 (comment)

@atz
Copy link
Contributor

@atz atz commented Aug 8, 2017

I like many of the git clients and have used them in the past, but when they fail, the only way out is on the command line. For that reason, for developers I find that basic instruction on the command-line (up through merge conflict resolution) would be inescapable. Visualization tools can be added on top, of course.

If a lesson were targeting managers whose role was more to review and approve changes than to author them, I could imagine a more GUI-centered course.

@naught101
Copy link
Contributor

@naught101 naught101 commented Oct 25, 2017

Also, there are many providers of remote git repositories other than github. I don't think it would be a good idea to tailor a workshop too closely to one platform. Particularly because some organisations may require users to use a particular provider (including something in-house, like gitlab).

For this reason, I don't think it would be useful to teach using the Github Desktop client. I also think other GUIs often get in the way, although they can be useful for particular things (like nice history graphs).

However, the idea of pull requests is fairly prevalent across providers, and github's implementation of that is fairly clean, so it would definitely be useful for teach that specific part of github, acknowledging that github's implementation is just a specific example of a more general concept.

@katrinleinweber
Copy link
Contributor

@katrinleinweber katrinleinweber commented Jul 17, 2018

[...] use a particular provider (including something in-house, like gitlab).

In that specific case, one could also teach the lesson in GitLab's Web IDE. Any thoughts on that? cc @libcce @weaverbel Maybe an idea for @LibraryCarpentry?

And just for completeness sake here: CalTech Library's GitHub Desktop lesson.

@libcce
Copy link
Contributor

@libcce libcce commented Jul 17, 2018

@katrinleinweber I like these ideas and want to test them, particularly GitLab's Web IDE.

@njamescouk
Copy link

@njamescouk njamescouk commented Jul 18, 2018

random comment: I saw merge conflicts mentioned above, imo kdiff3 (http://kdiff3.sourceforge.net/)
is quite a good gui for that, although in extremis I'd take a copy of the most complex new version and copy pasta the other version into it using an editor.

fmichonneau pushed a commit to fmichonneau/git-novice that referenced this issue May 28, 2019
added workshop calendar
@peterjc
Copy link

@peterjc peterjc commented Jul 27, 2020

Is there any effort to have a version of the lessons using GitLab instead of GitHub?

@katrinleinweber
Copy link
Contributor

@katrinleinweber katrinleinweber commented Aug 1, 2020

@peterjc: Yes (by @DLR-SC, @hzdr, @GFZ, & others)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
10 participants