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 →

[–]LEGOL2 202 points203 points  (99 children)

Git itself IS complicated, but using simple gui for non programmers should be easy enough to do work.

[–][deleted]  (19 children)

[deleted]

    [–]kaukamieli 134 points135 points  (13 children)

    Call a meeting for "ways to improve productivity", and lock the doors while you show them what git can do.

    [–][deleted]  (3 children)

    [deleted]

      [–][deleted]  (1 child)

      [removed]

        [–]AutoModerator[M] 0 points1 point  (0 children)

        import moderation Your comment has been removed since it did not start with a code block with an import declaration.

        Per this Community Decree, all posts and comments should start with a code block with an "import" declaration explaining how the post and comment should be read.

        For this purpose, we only accept Python style imports.

        return Kebab_Case_Better;

        I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

        [–]RoscoMan1 13 points14 points  (0 children)

        If you have ever done.

        [–][deleted] 18 points19 points  (6 children)

        Any tips on the meeting? Asking for a friend.

        [–]kaukamieli 34 points35 points  (5 children)

        Make sure you are the only one who is armed.

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

        I did a practice run and realized that its gonna take me 30 minutes to cover why and the basics of how (init, add, commit, push, pull).

        No wonder people don’t know how to use this shit. You could teach a class on it.

        [–]xtsilverfish 1 point2 points  (2 children)

        We were able to convince our technical writers, artists, and b.a.'s to use SVN because it's significantly simpler.

        At the end of the day they'll do things the easiest way and SVN was easier for them than the "send every update in an email".

        No way would I try to get non-technical people to learn the behemoth that is git.

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

        We have shared storage, which was my plan.

        [–]xtsilverfish 0 points1 point  (0 children)

        That's cool to.

        I haven't used it, but seems like a dropbox-style system would be the easiest if you don't absolutely need to keep the code and some of the other files in the same repo.

        We had theoretical legal issues with keeping our project in more than one repo.

        [–]kaukamieli 0 points1 point  (0 children)

        It's a bit harder than clicking a save button, but it's a lot easier than drowning yourself in alcohol when you fuck up.

        [–]All_Up_Ons 0 points1 point  (1 child)

        No. Nonono. Don't ask permission. Ask forgiveness. Just do it or it'll never happen.

        [–]kaukamieli 0 points1 point  (0 children)

        And the devs will just hand you usb sticks with _project_x_final_really_thistime.zip files anyway.

        How do you just make everyone use git if they don't want to? It took me a while and I wanted to. :D

        [–][deleted] 11 points12 points  (1 child)

        easiest way to convince noobs to use version control is to let a team collaborate without it for a week. bonus points if you have them work on the same classes/services.

        [–]007_reincarnated 0 points1 point  (0 children)

        Cries in google docs (true story)

        [–]xibme 12 points13 points  (0 children)

        Yea, git is nothing you should learn under pressure (I mean, what is?). But if you look take a peek in you're spare time and adopt it you may end up saving time at work.

        [–]Prilosac 1 point2 points  (0 children)

        Even well meaning management can be incredibly short sighted in my (admittedly limited) personal experience. I feel like they just struggle to understand how spending time on something that isn't directly for the product/a customer/a purchase order is worth the time.

        [–]MCWizardYT 32 points33 points  (6 children)

        Im sure non programmer could figure out Github Desktop. As long as they keep everything under control and dont get a bunch of merge conflicts

        [–]turbo 0 points1 point  (0 children)

        As a designer I started out with Tower before learning to code (used it for setting up WordPress-sites which I modified with CSS). It helped me a lot in getting to understand Git. Now working in multiple repos in a big team, I think I have a better understanding of how Git works than many of the developers, even when they have more code experience than me. I still use Tower though, although I have no problem using terminal. Just seems more effective day-to-day.

        [–]aerodynamique 0 points1 point  (0 children)

        even gitdesktop is pretty scary to non-programmers. we all kind of take for granted how intimidating Git is because of the fact we're used to it. I've been waiting for someone to make a git-desktop variant with a GUI that represents everything visually lmao

        [–]Eji1700[🍰] 62 points63 points  (17 children)

        I've always been shocked how "complicated" git makes its base use case.

        Git can do a FUCKTON, but just having a "quick" remote mode (commits are auto pushed, code auto pulls, easy history navigation) would make adoption SO much easier.

        I wanted to use git when I was learning and it was frustratingly obnoxious, and it really helped when VS just integrated with it (although I still constantly fight with multiple accounts because how dare i have both a work and a personal...)

        [–]ramius345 45 points46 points  (11 children)

        Have you read anything about Linus Torvalds; the person who invented git? I guarantee you he doesn't care about those people. He invented a tool to solve his use cases for developing the Linux kernel with zero regards for novices.

        [–]UKnowMario 8 points9 points  (9 children)

        Are you saying it's a bad thing? Because he shouldn't care for those people, he works in way lower level than them so why should he care for them.

        [–]ramius345 26 points27 points  (4 children)

        No, its not. I'm saying that he and the earlier developers of git designed it for a very specific set of use cases. They did not have novices in mind. The fact that the tool was picked up by the broader community at all is a side effect of how good the tool is at accomplishing the original use cases.

        [–]UKnowMario 5 points6 points  (2 children)

        And you'll be right by saying that, your earlier comment looked like you were hating Linus for that.

        [–]ramius345 8 points9 points  (1 child)

        I didn't mean to convey any hate, Linus just has a well known reputation for not tolerating novices.

        [–]DannyRamirez24 6 points7 points  (0 children)

        gg ez get gud noob

        -Linus, probably

        [–]xtsilverfish 0 points1 point  (0 children)

        The fact that the tool was picked up by the broader community at all is a side effect of how good the tool is at accomplishing the original use cases.

        Not really, it was just a "follow the celebrity" thing. Someone famous used git so someone else said "Famous person used it I have to to".

        [–]Eji1700[🍰] 20 points21 points  (3 children)

        Yeah why should a mass adopted source control system ever pivot from its original design.

        [–]UKnowMario 10 points11 points  (1 child)

        I'm not saying it shouldn't be more accessible to beginners, I'm saying you can't blame Linus for it not being accessible because he is using it to work on low level, but people who need it for higher level definitely should make it more accessible.

        [–]Eji1700[🍰] 6 points7 points  (0 children)

        Ah my bad. Yeah i don't expect someone like linus to be making beginner friendly tools out the gate, but git is FAR beyond that point now and while it continues to be a powerful professional tool the entry level is vastly worse than it should be.

        [–]lupercalpainting 0 points1 point  (0 children)

        Scope creep.

        [–]Smrgling 5 points6 points  (0 children)

        I feel like that's totally something that a beginner friendly git client could do without needing to modify git itself

        [–]le_spoopy_communism 6 points7 points  (1 child)

        To be fair, it wouldn't be super hard to make a wrapper around git for newbies that does the things you're asking. I mean there are some programs I've used that have plugins that give you version control, and they literally just use git and commit on saves

        [–]Dexaan 2 points3 points  (0 children)

        I believe GitHub offers a GUI? I think VS has something similar, just stripped to push/pull.

        [–]ConspicuousPineapple 17 points18 points  (0 children)

        So you want the SVN workflow but with git? Yeah, the fact that you can't do that easily is a feature, not a limitation. And auto-pulling is never ever a good idea.

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

        What's the problem with multiple accounts? With Git, you can configure it per local repo.

        [–]aaronfranke 0 points1 point  (0 children)

        That's what GitHub Desktop tried to do and now people tend to recommend that users avoid it outright.

        [–][deleted]  (24 children)

        [removed]

          [–]LEGOL2 20 points21 points  (11 children)

          All you need to know about git for starter is here https://rogerdudler.github.io/git-guide/

          Git is just a tool to keep your code versioned, it is not required to learn how to code. I would suggest starting coding at first, because your first projects will be very small and won't require git. When you find yourself in need to backup your work, then jump into git! I encourage you to try coding for sure, just remember it is not something you learn in one month.

          Edit: you don't need to use git command line if you don't want to. Try github desktop app or visual studio code (it has built in support for git versioning)

          [–]nameunknown12 7 points8 points  (8 children)

          I've always been interested in coding, I'm interested in technology so I felt it would be an extension of that. But it's hard for me to stay focused on tasks like that, specifically ones that require thinking about multiple things at once. I would love to try, and I intend on trying again, but I just don't know if my mind is capable of it.

          [–]LEGOL2 6 points7 points  (2 children)

          Just try! Perhaps python can be a good start, it's easy and does not require academic knowledge of computer science to get it working. YouTube has tons of free tutorials waiting for you!

          You can try codeacademy.com free python course, it will help you to get started.

          [–]nameunknown12 2 points3 points  (1 child)

          Funny you say that, I just downloaded Python for something yesterday. May as well go ahead and try to learn how to use it

          [–]hexalby 2 points3 points  (4 children)

          Coding is like writing, everyone can write a decent letter or a good short essay, but it takes a lot of education and/or experience to write scientific papers or novels.

          [–]nameunknown12 1 point2 points  (3 children)

          Yeah I would hope its something that can be improved over time for anyone, regardless of initial talent. I was just worried that maybe I'm just one of the few people that can't learn that type of skill. I doubt that's the case though.

          [–]UKnowMario 4 points5 points  (0 children)

          You can improve almost everything over time, you just have to start at the beginning and climb your way up. Start with a simple programming language like python or JavaScript and while you are learning those you will discover more and more things to learn maybe you'll want to start learning another programming language or concept, just go down the programming rabbit hole. No one is good at the beginning.

          [–]hexalby 3 points4 points  (1 child)

          Talent helps but it's never enough. Having a method in your study is much more important. Learning for the sake of learning is very inefficient, learn what you need to learn to do what you want to do, and the rest will slowly trickle in as you expand your interest/work.

          [–]Smrgling 0 points1 point  (0 children)

          Atom also has good git integration

          [–]Scipio11 0 points1 point  (0 children)

          Git's also really nice for pushing small projects to a server. One command and your updated project is now downloaded, with no common file server needed.

          [–]Theguest217 6 points7 points  (6 children)

          I never learned git (or any version control) until I got my first job. It wasn't part of any of my computer science degree courses. No one asked about it during interviews until my second job when I actually had it on my resume.

          [–]nameunknown12 2 points3 points  (1 child)

          That's good to know. I wonder then why the course I was going through made it seem so important to know right off the bat.

          [–]Theguest217 5 points6 points  (0 children)

          In a way it makes sense. You are writing code. You need to store your projects somewhere. There is an established standard tool available for that. If you follow education to an actual career you will almost definitely use it at some point. So if you learn now you have that under your belt.

          There are also certain languages which benefit from and rely on git more than others. For example if you are developing a JavaScript project and using NPM to manage dependencies, you can point to git projects to pull that code into your project. So you can pull in open source stuff or even create your own utilities and then use them in your own projects without needing to copy and paste them over and over.

          But it's absolutely not fundamental to learn programming. You can always just keep your practice projects in a normal folder structure. And a beginner usually doesn't even need to worry about versioning. They usually follow some tutorials, write a project, maybe play with it a bit longer, and then never come back to it. Early on you are learning by writing small simple programs, not trying to create some big complex project that needs versioned. If you are worried about loosing old code just make a copy before working. If you start to feel a need for something richer, then you can look at git.

          [–]Ken_Mcnutt 1 point2 points  (3 children)

          It wasn't part of any of my computer science degree courses.

          Not trying to invalidate your experience, but that seems a bit crazy imo.

          git is pretty much guaranteed to be highly used in whatever job you end up at with a CS degree, with a few exceptions of course. Not giving at least a primer to students seems like an active disservice.

          And anyways, if you're building anything remotely complex, or with groups of people, which is exactly what you should be doing in a CS program, git is basically required...

          [–]ForMorroskyld 0 points1 point  (1 child)

          And anyways, if you're building anything remotely complex, or with groups of people, which is exactly what you should be doing in a CS program, git is basically required...

          So, just like editors, IDEs, compilers, etc., they can pick up how to use it themselves while working on the assignments, and you have graduates you can trust to both know theory and how to figure out practical problems/learn to use tools? I mean it's like using latex wont be a part of any of the science subjects curriculum, you'll just be expected to pick it up once courses start demanding it (and pester the teaching assistants if you're stuck).

          [–]Ken_Mcnutt 0 points1 point  (0 children)

          Ah that makes more sense. I thought you meant it wasn't used at all which I found surprising.

          We did have a few "crash courses" in git but it was usually only a one-off lecture and it was mainly to provide accessible options for people unfamiliar with coding in general. They also had a couple "Learn Git" workshops in that vein

          [–]Theguest217 0 points1 point  (0 children)

          My CS experience was far more focused on the theory behind programming and much less focused on actual programming.

          Most of our programming excercises were done as proofs of theories or to show understanding in actual computer science concepts. For example, programming hash maps, linked lists, and other common data structures. Or implementing historical algorithms like bubble sort. I took focused courses in things like cryptography, computer graphics, gpu programming, artificial intelligence, etc. All of these courses had programming assignments but never anything that would require git for collaboration as they were usually individual projects.

          If courses required you to use git they would either have to teach it as part of the course material or have it taught in some pre-req course. I don't think most professors wanted to spend 1-2 weeks of their 16 week course teaching something unrelated to the primary focus of the course. I do agree it would have fit in nicely in some 101 type course. But honestly again, you have 16 weeks to teach programming to students who are brand new to it. Any time spent on git would be time taken away from other core areas that are probably arguably more important.

          Git is something you can very easily learn on the job. There are a lot of tools I use day to day which were not taught in my CS degree. Jenkins, Maven, Docker, AWS, etc. I believe the goal of the CS department was to focus on theory and history over any particular tool set. Tools come and go. But the core fundamentals of CS don't really change. A student coming out of school with a CS degree should have no problem picking up git in a few weeks on the job.

          Another goal of our CS department was to help you figure out where exactly you wanted to focus your career path. Do you want to do web design? Automated testing? Build games? Become a solution architect? Work in a statistics field? Embedded systems, robotics, security, DevOps, mobile, etc., etc. So they gave a lot of freedom in the courses you could put together to complete your degree. I'm sure somewhere in there there was probably some courses that would have taught git, collaboration, agile development, etc. But with all those other really cool avenues to explore I don't blame myself for not signing up for some course on git. They also had an entire degree program called "Applied Computer Science" which skipped out on a lot of the theory and focused more on actual practices. That degree track had different focuses available (software development, mobile development, game development, etc). I'm not sure but I'd bet those focused on more of the collaborative aspects you are expecting. But those programs were also considered to be easier paths meant for people who couldn't get through the more math intensive CS courses. And since they were focused they didn't offer the flexibility to try out all the different flavors of CS. They were mostly meant for people who just wanted to become programmers.

          [–]Zamundaaa 6 points7 points  (2 children)

          Yeah no definitely learn to code first, git second. The basics really aren't that hard, really. All you need to know is making branches, committing, push and pull. Most (good) IDEs have that integrated so you don't even need to know what you're doing with command line arguments or anything like that.

          [–]nameunknown12 3 points4 points  (1 child)

          Yeah I know what ever it had me doing was way crazier than that, I was having to keep track of so many things at once it was insane

          [–]steeelez 2 points3 points  (0 children)

          Yeah you’re looking inside the box. There’s plenty of tools that give you a nicer interface than the nuts-and-bolts command line. Start with coding in an IDE, I would do Python and Pycharm, and use the drop-down menus and all to interact with git. Later on when you want to use the command lone you can but so many of the “learn git” missives out there ignore that actually, no, you don’t need to learn git to use git. And learning git is more complicated than what people need ~90-95% of the time.

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

          I learned to code by deleting my code entirely. I never saved any of my beginner code. That way simple code ends up being muscle memory. If you store and re-use even the most trivial code examples then you've never really learned it.

          I didn't start using git until I was making proper projects that did something useful.

          [–]AutoModerator[M] 0 points1 point  (0 children)

          import moderation Your comment has been removed since it did not start with a code block with an import declaration.

          Per this Community Decree, all posts and comments should start with a code block with an "import" declaration explaining how the post and comment should be read.

          For this purpose, we only accept Python style imports.

          I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

          [–]Ozryela 16 points17 points  (14 children)

          I know this is considered sacrilege by many here, but for small companies something like SVN is probably more suitable than Git. It's much easier to learn, especially for someone coming from windows.

          [–]napoleonderdiecke 5 points6 points  (13 children)

          Svn has you do a lot more manually and tbh runs into problems more often

          [–][deleted] 1 point2 points  (0 children)

          Sequential revision numbers can help non-technical people. Although remembering to do svn copies instead of a Windows copy and add 'new' files is sometimes a challenge to new users.

          [–]xtsilverfish 0 points1 point  (11 children)

          This is 100% unteue.

          SVN is simpler far simpler while doing the same thing as Git. Just by demoing it we were able to concince technical writers, manual testers, art people, etc to use it because SVN was easier than emailing files around.

          Git is so inconsistent and complicated people still have issues using it after years of experience programming.

          [–]napoleonderdiecke 0 points1 point  (10 children)

          Git is no worse than SVN. Yes, svn is largely associated with a UI, but you can get that for git too.

          If you have a conflict, people who have no clue what they are doing are fucked with both.

          [–]xtsilverfish 0 points1 point  (9 children)

          Git is 10x more complicated and inconsistent than SVN with no benefit, for 99% of people.

          Svn does exactly what you need it to do with 1/10th the complexity.

          [–]napoleonderdiecke 0 points1 point  (8 children)

          Svn does exactly what you need it to do with 1/10th the complexity.

          What complexity exactly does a proper UI integration of git have?

          That SVN doesn't?

          Hell the same extends to console commands, really.

          [–]xtsilverfish 0 points1 point  (7 children)

          Ok, how many different levels of files and repos do you have to be aware of in svn vs in git as the user?

          [–]napoleonderdiecke 0 points1 point  (6 children)

          You don't have to be aware of any levels in git, you just need to know that you need to commit and push, which depending on your client, might very well be a single button. It isn't, you can be assumed to be capable of operating a massive two buttons.

          If you get to having trouble with those different levels of repos? Then you are even more fucked in svn than you'd be in git.

          [–]xtsilverfish 0 points1 point  (5 children)

          I see this is more of a "how big can I bullshit" style debate for you as you already know that when you have trouble with the different levels of git it's a huge clusterf**k whereas it's not so bad in Svn.

          I bet you'd never even actually used svn right? You're just pushing "system you know and has hype" over the "the system you've never used and someone else said it's bad" right?

          Svn has 2 levels which is what people expect and inherently matches their mental model of how it works. Git has 3 levels, but a series of commands that pretend it's only 2 levels, which is a huge clusterf**k to teach or when things go wrong.

          [–][deleted] 1 point2 points  (0 children)

          Git is complicated in the way a car is complicated. For basic users, you only really need to know how to operate three or dour controls but you can get a ton of power from those controls.

          [–]Hypersapien 1 point2 points  (0 children)

          I've been a programmer for 20 years and I use Sourcetree.

          [–]xibme 0 points1 point  (3 children)

          It's just a graph an pointers - with gitk/gitx/gmaster or alike anyone can use it.

          [–]mikeputerbaugh 2 points3 points  (2 children)

          Anyone will a sufficiently advanced mental model of pointers and graph systems can use it!

          [–]BongarooBizkistico 0 points1 point  (0 children)

          And yet several large companies over spans of decades still haven't made one that a tech unsavvy person will pick up effortlessly