Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Thomas Euget
Thomas Euget
10,615 Points

Is there a track for learning to use git professionally?

-

Udacity also has a free tutorial on Git

1 Answer

It depends on what you mean by the term "professionally".


Up until this github course:

https://teamtreehouse.com/library/git-basics/working-with-remote-repositories/github

..teamtreehouse has tended to discuss github as a part of a larger course of study,

as in this section of a ruby on rails course for example:

https://teamtreehouse.com/library/build-a-simple-ruby-on-rails-application/getting-started-with-rails/push-to-github


Personally I've been hoping that they have a series of courses on using repos (repositories), like HG (mecurial), svn (subversion), etc --discussing how each is different, pros and cons of each as well as going a little into discussion the importance of source code control, including how it evolved historically.

So far I haven't seen such in depth coverage (if that is what you are meaning by "professional" coverage...)

Of course github serves as has both distributed revision control and source code management (SCM) functionality, per this Wikipedia article (which has links for both subtopics):

https://en.wikipedia.org/wiki/GitHub


There's a nice high level overview comparison slideshare of the different RCS-es I bookmarked:

http://www.slideshare.net/VinothKumarKannan/svn-vs-mercurial-vs-github

But it doesn't explained why git (and github) have captured as much developer "mindshare" in recent years.


I know the teamtreehouse people are dominated by CLI (command line interface) junkies,

but personally I use git-gui along with Atlassian's Bitbucket to mouse click my way through uploading code from Windows to Github.

Here's a few tutorials:

https://nathanj.github.io/gitguide/tour.html

https://matthew-brett.github.io/pydagogue/git_gui_windows.html

Yes if you need the typing practice I'm sure you can open up a command line window and start typing away

but personally my time as as developer/programmer is always in limited supply

and I would rather spend it writing code then maximizing out my time doing push pulls.


Just as an aside if you google for a gui for github at the top of the search results will be something called "Github Desktop"

I can not stress enough the awfulness of this piece of software.

It looks/act slick and you'll find yourself thinking:

"maybe I'm just not using it correctly, but I can't find a way to manage my repo locally..."

No, it's not you - for a while the Github Desktop people removed the option to delete a branch locally (per this SO thread):

http://stackoverflow.com/questions/32102810/how-do-i-delete-a-local-branch-on-github-desktop

Eventually they (grudgingly it seemed) added the functionality back to a sub-item of a gear menu, but

the longer you use it (and I used it for over a year) the more you realize

it's specifically designed with one strength in mind - doing pulls (and forks) from Github.

It's pretty much a one trick pony.

Most "lone wolf" developers (and many small teams) do most of the initial (alpha) phase of the developing their code

in a local repo and then only when it gets slightly past the beta stage do they

take the step of uploading to github for the public to see (and pull/fork).

The gitgui utility is best used for local "staging" and local commits.

I have a separate utility that lets me drop-n-drag together commit-related comments

and then past them directly into the textbox saving me having to do any typing whatsoever.


Here's how the Atlassian's Bitbucket comes in to the workflow:

You can create what I call a "shell" of a Github repo after you set up your github account (you can have it create a readme file and a license file but without any source code).

After git-gui sets up your local git repo (basically a folder with your source code and a special hidden git index file/folder),

then you open the Atlassian Bitbucket software and "open" that folder.

It read that folder and loads the contents into the gui.

It doesn't know that you have a public (remote) github account.

So you have to tell it which Github account url is associate with the local repo folder on your local storage (hard drive/sd card/ usb-flash drive).

Then, before you try to "push" the local repo to your remote (online) github repo,

always do a "pull" to get that readme and license file to show up in the Bitbucket gui window.

It shows that you've set up the "linkage" correctly (and that github is acting the way it should - I've had trouble sometimes on flake-y wi-fi connections) and doing the remote push should be no problem.


The Atlassian Bitbucket software comes with a variety of tutorials:

https://www.atlassian.com/git/tutorials/

However there is something called a "Bitbucket server" and the Atlassian tutorials tend to emphasis interacting with that type of server instead of with Github,

so I also recommend seeking out your own tutorials like this one (that actually goes into a bit about managing your local rep with Bitbucket...which I don;t find as easy as using git-gui but it's technically possible):

http://candordeveloper.com/2013/01/21/github-for-windows-connected-to-bitbucket/


Sorry for the long "off topic" info, but the subject of using a gui workflow to manage you local git/remote github just somehow never seems to come up on a teamtreehouse forum,

and I think it really needs to be "brought up" more because it's an important workflow option that the teamtreehouse CLI junkies would like you to ignore (or 'pretend' it doesn't exist).


I hope it the future to go to using a single free or low cost gui software to drop/drag manage both local and remote git repos,

but I as of yet I have failed to find one that does everything easily and intuitively as yet (still looking though if anyone reading this thread has a helpful link they think I should try).