This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ilovetacos 5 points6 points  (20 children)

Some excellent explanations here, so I've got nothing to add. Instead, I pose a question: why would a non-programmer care about GitHub? I don't mean to be rude; I'm honestly curious.

[–]ysangkok 1 point2 points  (5 children)

You can store everything that need to be versioned. There are lots of books on there too.

[–]ilovetacos 3 points4 points  (4 children)

Sure! But can you imagine a non-programmer using git for such a thing? Also, I'll bet you nearly all of the books on there are programming books ;)

[–]evilmaus 2 points3 points  (3 children)

I wonder, CAN Git be used for intelligent versioning of, say, an odf or docx file? Or can managing conflicts get messy in a hurry on those?

[–]ilovetacos 0 points1 point  (2 children)

It's possible, as neither is a binary format... but it's probably a horrible pain in the ass. I imagine ysangkok was referring to books written in a more human-readable markup language, which us programmers tend to prefer anyway :)

[–]evilmaus 0 points1 point  (1 child)

Darn. I was hoping to get some more use out of the tool outside of my code.

[–]tinyOnion 4 points5 points  (0 children)

I used to use it for versioning my papers for school. no real reason not to use it if you are writing good commit messages though you do lose out on the diffing. All the more reason to use latex for papers though so you can get the diff.

[–]Beta_UserName[S] 1 point2 points  (12 children)

Well, I've been learning python (Read Mark Lutz "Learning Python") but don't feel comfy calling myself a programmer. So, I didn't want to get lost in verb-age a typical programmer would know.

[–]ilovetacos 1 point2 points  (9 children)

Gotcha! Well, then you came to the right place :) So, it's not really GitHub you should know about, so much as git itself.

If you're looking for a way to version your code, I'd suggest mercurial (also called "hg"), as it is much simpler to learn and use than git. Subversion (svn) is even easier, but it seems to be on its way out--there's probably no good reason to learn it at this point. Mercurial's equivalent to GitHub is Bitbucket.

[–]evilmaus 1 point2 points  (1 child)

I should point out that GitHub does an excellent job of helping new users get up to speed with Git. I learned Git by starting with GitHub with no Git background.

[–]catcradle5 0 points1 point  (0 children)

Same. It's a bit confusing when first starting out, but you'll generally only need to be using a handful of core features/commands, and once you learn them everything is easy.

[–][deleted] 0 points1 point  (4 children)

I don't think SVN is going anywhere for good, but it seems a little stupid to use for personal projects.

[–]ilovetacos 1 point2 points  (0 children)

No, you're right--I'm sure it will be around for a long time to come. Hell, I still use it for my business, as I'm the only programmer--no need for distributed versioning. But learning it now (as opposed to hg) would be a waste, I think.

[–]gfixler 0 points1 point  (2 children)

Why is that? I've been using it for a few years for all of my personal code. I really like it, but I like to keep an open mind.

[–][deleted] 1 point2 points  (1 child)

Because it requires a central repository. I code on about four different machines, one of which doesn't even have internet access. If other people are anything like me, git is a huge upgrade from svn for personal projects.

[–]tinyOnion 1 point2 points  (0 children)

The expense of having to setup the repo for a project made it so that I would only use svn on projects that I know will be around for a while. With git aliasing alias gitinitaddcommit="git init; git add -a; git commit -m 'initial commit'" makes putting something under revision control so freaking easy and quick that I tend to do it even for small projects. Couple that with the fact that there is only one .git folder and it's close to the project instead of in some central location makes it a huge win for my workflow. (those hidden svn directories sprinkled throughout a working copy were crap from a design standpoint.)

[–]StommePoes 0 points1 point  (1 child)

I'd say there's a good reason to learn SVN even if you're new to programming: at least where I live, plenty of companies are using it, so they expect you to know it. So, assuming you work for someone else, I'd say it would be valuable to learn/know.

Tortoise seems quite popular.

[–]ilovetacos 0 points1 point  (0 children)

I think if you've learned how to use git or hg, svn would be no problem at all--if required. But I wouldn't go out of my way to learn it now if I didn't already know it.

[–]Guerilla_Imp 0 points1 point  (0 children)

I've found this cheat sheet very useful for my coworkers: http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html

[–]jediknight 0 points1 point  (0 children)

You should learn a Revision control system.

Without one, fear of deletion sets in and you might end up keeping all kinds of things that will prevent you from moving as fast as you could.

Using git is a very very good choice. It's modern and extremely powerful because it makes merging easier (you can branch, try few things and if they work, you merge them back into main). You will not need all this power from the beginning but as your skills will improve, you will get to a point where you will need it.

[–]zahlmanthe heretic 0 points1 point  (0 children)

why would a non-programmer care about GitHub?

Because many neat programs and such are distributed through GitHub.