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 · 11 comments

Comments

Projects
None yet
9 participants
@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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Contributor

katrinleinweber commented Jul 17, 2018

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

In that specific case, one could use 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

This comment has been minimized.

libcce commented Jul 17, 2018

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

@njamescouk

This comment has been minimized.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment