16

Ask DN: Let's talk about Git

over 8 years ago from , UX Designer

Hey folks,

Wanted to know your thoughts on Git and how it fits into your workflow.

  • Do you use/don't use a GUI client for it?
  • Do you think it's worth it for small projects?
  • Do you think it's for everyone?

I've seen some opinions against Git & other new tools, and I wonder how much it's really worth the hassle for designers (in a broad sense) to actually learn it.

Disclaimer: I'm considering a workshop to introduce designers to Git, and this discussion is in part to feel the community's opinion on this idea.

28 comments

  • Caleb SylvestCaleb Sylvest, over 8 years ago

    I would say Git is always worth using. Big project or small, using Git can save tons of headache if something goes wrong or you need to revert code. For one, it's a simple way to backup your work instead of only storing code on your local machine or dropping onto a company server. There are different levels of 'professionalism' when committing code; for example, at work I always commit in well messaged small chunks, but when I'm home and working on small stuff just for myself I may just commit large chunks of code with barely any messages (cause it doesn't affect anyone else).

    For noobs, starting with the Github GUI is a simple way to start learning. But the command line is a super valuable tool to learn, and it's really not that difficult. I'm primarily a designer and do some front-end work, and using the CLI is no problem unless I run into some major issue. Like any skill it takes time to develop an understanding of Git and the tools, so start small and build up to the CLI.

    Another good in-between GUI is SourceTree. Typically I suggest starting with the Github GUI, then move to SourceTree, the straight CLI. While using some CLI from the beginning, like learning how to change directories and clone a repo.

    Hope that helps develop your workshop. If you have any other questions feel free to shoot!

    17 points
    • Daniel Fosco, over 8 years ago

      Thanks for the input!

      I think we're pretty much on the same page — I started using Sourcetree and have recently moved to the CLI. Also, agree on Github Client > Sourcetree > CLI.

      One of the roadblocks I see to start using Git is the mental model you have to wrap your head around, which makes total sense and becomes second-nature after a while, but can be hard to grasp in the beginning.

      Btw, do you tie your to-do lists to Github issues using commits? I haven't seen that much, and I'm not sure that's a common occurrence outside of large open-source projects that pretty much live on Github.

      1 point
      • Caleb SylvestCaleb Sylvest, over 8 years ago (edited over 8 years ago )

        The mental model of Git is tough to grasp for beginners. I remember my first day on a new job and I had never used Git. A guy printed out a paper for me to read and look at a flow chart, needless to say it made zero sense.

        Luckily there are now tons of resources for learning Git. Treehouse, CodeSchool, even Github has info for beginners.

        I do use Github issues and tie commits to the issues. We use this method at work quite often. You can do cool stuff like close issues with a commit, if you add something like "Fix #21" to you commit message, but we don't typically do this anymore because we want to QA the issue before closing. So instead (if I remember) I usually copy the commit number in Github and paste it into the issue, which creates a connection.

        1 point
  • Kelly SuttonKelly Sutton, over 8 years ago

    From our experience and the many conversations with have with our customers: it depends.

    We use both git/GitHub and LayerVault internally to build software, including the site where you're reading this very comment.

    For tracking ideas and capturing the creative process, LayerVault or a tool like it is better. It's designed to set-it-and-forget-it while you work. Organizing your work is something you do after your work is done.

    Git, or even naming you files "final-final-final," require you to stop thinking about creation and be more deliberate with your file management. For many situations, this is not a bad thing. There's a reason why we use git to track code, and other tools to track design. The place where that line gets a little fuzzy is when you are translating designs into code, or shipping designs to a production environment.

    On the whole, using a version control system is never a bad proposition. It takes a little bit of work to give you peace of mind and a lot more flexibility.

    4 points
  • Roel van HintumRoel van Hintum, over 8 years ago (edited over 8 years ago )

    For my usual committing code and merging/branching i really like to use the Github app, even when the repository isn't on github. When more complex problems arise, i move to the cli. The Github app is a nice and simple interface, which really helps me viewing my changes before committing.

    Git Tower is also worth looking at. I've tried Sourcetree in the past, but the interface was just horrible.

    2 points
  • Jonathan SuhJonathan Suh, over 8 years ago

    Do you use/don't use a GUI client for it? I use a GUI client but only because I find it easier to get a visual representation of diffs, previous commits, files that have been changed, etc. For anything else I find using the command line exponentially faster. I realize that learning the command line for those unfamiliar with it can be difficult, but sitting down and taking the time and patience to learn it is worth it.

    Do you think it's worth it for small projects? Yes, especially if you're learning Git—I find it easier to get acclimated to making commits, reverts, pushing, pulling, etc. I consider Git preventative maintenance—there have been countless times I made mistakes and being able to revert them or look back on my changes is invaluable. Also the ability to archive your projects, share them with others, and allow people to collaborate remotely on the same project makes it worthwhile. Tying Git with a service like Github takes it to another level, being able to open up issues/bugs and being able to make commits and tie it to a specific issue/bug is great, too.

    Do you think it's for everyone? I think it should be encouraged for anyone that writes code. The value you get out of Git is too great to overlook it or take it lightly.

    2 points
  • Mike BusbyMike Busby, over 8 years ago

    I am a designer and developer, I use git all the time. it's well worth it to learn if you code. It's not a complicated thing to learn either.

    I tried with the GUI first and found that too hard to use so I started using the command line. Much better IMO.

    2 points
  • Diego LafuenteDiego Lafuente, over 8 years ago

    I only use git on command line. I enjoy it that way.

    1 point
  • Kevin SuttleKevin Suttle, over 8 years ago

    I've been collecting resources for learning git for a few years now. kevinsuttle.com/learn-git

    Feel free to use it, and/or fork it. https://github.com/kevinsuttle/learn-git/fork

    1 point
  • Cihad TurhanCihad Turhan, over 8 years ago

    When I use windows I use tortoiseGIT which is awesome for a starter to git. It extends context menu so when you right click to a file or git repo folder it gives you a number of quick shortcuts and I find it very usable. Unfortunately, it has only for windows and the closest to it might be like sourcetree.

    1 point
  • Drew AlbinsonDrew Albinson, over 8 years ago (edited over 8 years ago )

    Do you use/don't use a GUI client for it? Yes, I use the GitHub GUI client a lot, I do drop into the CLI once in a while and am looking to transition over entirely because I keep reading that it's the way to go.

    Do you think it's worth it for small projects? Yes, it's not hard to get set up and is incredible to have access to your old/current code at any place and time. Plus GitHub pages are a great place to get things started without messing with any hosting or DNS.

    Do you think it's for everyone? Anyone who touches web should familiarize themselves with Git immediately. It's always important to be able to understand how your collaborators work, and even if you don't do any dev work, getting a grasp on Git will make you more valuable and more appreciated by your devs.

    I use Git for all of my personal/freelance web work and am looking to move my work projects over as well. The only reason why I haven't already done so is that I haven't bought an account and would need private repos for work (and don't care for personal).

    I just got started with GitHub pages and am going to start building on that as much as I can. I'm really intrigued by their support for .PSD and may see how I can integrate that into my workflow as well. I'm still very much a beginner and have a bunch of reading left to do before I'll feel completely comfortable with Git, but I see it as important, invaluable, and a web workflow standard.

    1 point
  • Alex ChanAlex Chan, over 8 years ago (edited over 8 years ago )

    CLI all the way! Though I have seen some really nice GUIs for it (Tower and Source Tree come to mind). Don't let using a GUI for Git get you down. I know quite a few great devs that only use a GUI for Git.

    I also use Hub which is a CLI for GitHub and git-extras for some convenience commands.

    The only thing I hate about CLI Git is the difftool (I believe it defaults to vi) so I switched to Kaleidoscope.

    Definitely worth it for small projects, especially if you're prototyping new features or aren't sure if you're going to break the build. Starting a new branch costs almost nothing in terms of system resources and saves a lot of headache in the long run.

    It can be for everyone. You just need to take the time to learn how it works and how to use it correctly (especially if you're working in a collaborative team).

    I highly recommend reading Pro Git. v2 of the book just came out.

    1 point
  • Daniel Fosco, over 8 years ago

    Thanks for all the feedback, folks!

    If I ever see anyone badmouthing Git, I'll just point them to this page, haha.

    1 point
  • David BachmannDavid Bachmann, over 8 years ago

    For non-CLI people who want to give Git a try, take a look at Gitbox. Their slogan is Version control as easy as Mail and they aren't lying.

    1 point
  • Al Hertz, over 8 years ago

    Git is definetely for everyone (out of necessity that it be) and using clients like are a great way to get started with the core workflows.

    Anyone working on digital products should be familiar with (and using) some sort of version control no matter what size/scope the project has. Since git is the most commonly used, it makes sense to recommend it.

    As for GUIs, I think we all should be getting into the command line as soon as possible but using a GUI is a good way to get familiar with the value of git as a whole before jumping into the fire. In my experience, the majority of people who will be teaching new comers to git will likely be able to help the most with the command line so it makes sense to aspire to get there as soon as possible (since that is where advice will be most valuable). There also a whole bunch of fun ways to customize your commands and command line :)

    1 point
  • Fabricio Rosa MarquesFabricio Rosa Marques, over 8 years ago

    Learning Git on the CLI is a good thing, but using Git@CLI on a daily basis is not comfortable (Browsing the project history, resolving conflicts, etc.). There are a lot of learning ressources out there these days which will teach you Git for free, e.g Learn Git

    Since I'm part of the team behind the Mac Git client Tower my view on desktop clients might be a bit biased, but I'm using it for almost every project which has text-based files ;)

    1 point
  • Ryan Townsend, over 8 years ago (edited over 8 years ago )

    I think a lot of the resistance is due to information overload. Teaching people about branching, merging, rebasing, et al, is a fool's errand when they haven't previously used source control, or even any command line interface, on a regular basis.

    Let's just try grasping creating a repo, committing changes, and publishing them to remote repos (Github / Bitbucket). This will allow people to become acustom to the terminal and just a handful of Git commands to integrate version control into their own workflow, before being bombarded with the more technical commands which create team-based workflows.

    To directly answer your questions:

    Do you use/don't use a GUI client for it?

    No, the CLI is well-written and GUI diagrams just confuse the matter, they force a visual mapping to the workflow that may differ to what's in people's heads.

    Do you think it's worth it for small projects?

    It's worth it for anything. It's just about educating people so they find it so easy for "should I use Git for this?" to be a non-question.

    Do you think it's for everyone?

    Everyone who works in the creative / tech space: absolutely. It just needs to be taught in the right manner.

    1 point
    • Cihad TurhanCihad Turhan, over 8 years ago

      Isn't it difficult to resolve conflicts on CLI. I tried cli (still using it for pull, push or other simple jobs) but if I have a conflict or even I want to compare two files, CLI will be pain in the neck .

      1 point
  • William GuerraWilliam Guerra, over 8 years ago
    • I feel much more comfortable using command line for git.
    • I think its hard to find an argument where it is not worth it. Even on small projects, the benefits easily outweigh the effort.
    • My parents have no business using git. It's sure is "for everyone" that is a developer, but I can definitely see where some designers would prefer other tools.
    1 point
  • Joe VillanuevaJoe Villanueva, over 8 years ago

    I don't, but I've used Tower previously and it seemed good.

    What is considered a "small" project? In considering whether git is "worth" it or not for a "small" project (disclaimer: I am not a dedicated engineer) is thinking on whether you plan to explore things, whether or not you have code collaborators, whether you make a lot of mistakes, etc.

    No, but its for a lot of people. Designers that contribute no code might have little use for git.

    1 point
  • Matt SistoMatt Sisto, over 8 years ago (edited over 8 years ago )

    I'm just going to address the CLI/GUI question.

    I use command line 95% of the time for a few reasons:

    • There will inevitably be a point in every long-term project where I am going to have to ssh into a server and fix something. Most of the time, you will not have the option to install a GUI in that situation. I'd rather not be lost.
    • In my experience, folks who have only ever used GUIs lack a fundamental understanding of what is actually happening. I'm sure there are exceptions. I work on a team, understanding git at a less abstract level makes it easier for me to communicate and coordinate with co-workers.
    • It's fun once you know what's up.
    • Once you are comfortable with the CLI, GUIs just feel slow. Selecting a branch from a <select> menu? No thanks!

    That said, I do use SourceTree when I do not commit soon enough and find myself in a situation where committing everything would be naughty. I find that the one thing git GUIs do well is present diffs in amore comprehensible way.

    1 point
  • Aaron GrandoAaron Grando, over 8 years ago (edited over 8 years ago )

    I'm a developer. But I believe that if you're working in any text-based format, git can be useful to you. I have not used git for tracking design work, besides designing, building and evolving my own website in-browser over time.

    One of my favorite things about using git for my site is that it gives me a full history of editing my blog posts, like this: https://github.com/aarongrando/gran.do/commits/master/app/views/blog/about.html.erb

    I choose not to use a CMS for my site (which might save these revisions), so this functionality is highly useful.

    I do not use a GUI. It wasn't how I was taught (about 5 years ago) and it's never felt too natural. I've tried the Github for Mac client, did not like it. GitX (which may not be maintained any longer) has/had a useful history viewer and I used it for some time before Github's history tools evolved to their currently great state.

    I use git for even small projects, yes. Version tracking allows a level of freedom and security that is useful at any dosage. "Is it worth it" implies cost – time or money. Git, once you understand it, adds practically zero time overhead. And it only costs money if you choose to host your versioning repo on a paid host (ie. Github). The monthly price is pretty nominal if you're working professionally. For my own small projects, I tend to host the repos publicly which incurs no cost.

    1 point
  • Daniel GoldenDaniel Golden, over 8 years ago

    Only wish I'd learned it sooner:

    • I prefer the Git command line interface over any GUIs I've used.
    • I do think it's worth using on small projects, and have even used it for quick single page sites.
    • I don't think it's for everyone in the sense that everyone should be using it. There are too many variables from person to person and project to project to accurately cover them with the "for everyone" blanket. That said, I'd certainly recommend Git above any other revision control system, but I don't believe it is necessarily the right answer for everyone.
    1 point
  • Nick SchadenNick Schaden, over 8 years ago

    Git is a wonderful, if not near essential tool for web development. I see a lot of resistance because of how non-linear a path you can cut with the tool, yet with a bit of practice, simple command line familiarity doesn’t have a high learning curve.

    That said, is for everyone? No. At least not now. Tools like Layervault are cleaner for the visuals to see things like how a psd layer comp morph and change with revisions. Git however is unparalleled for code; I can’t see any reason to look back to any other version control system.

    0 points
  • Kyle LKyle L, over 8 years ago

    Do you use/don't use a GUI client for it?

    No I don't use a GUI, I use the terminal. My reasoning for staring this way was because it made sense to use the same tools most of my engineering team used. Using the same tools helps me communicate when I run into issues. I have found that once I got used to the command line GUI's for the most part got in the way of simple tasks - I'm am not saying this will work for everyone but I encourage designers to get out of their comfort zones before they make an assumption that "It's too nerdy" or "My brain doesn't work that way"

    Do you think it's worth it for small projects?

    It's great for all projects. That said you don't really get the power out of it if you don't commit often and branch like you would on a larger project working with a team.

    Do you think it's for everyone?

    If you are building anything online, or will in the future, than it will be very beneficial to learn now.

    0 points
  • Suleiman Leadbitter, over 8 years ago (edited over 8 years ago )

    To answer your questions:

    • Do you use/don't use a GUI client for it?
      • I mostly do use a Git client I used to use Gitbox which had a similar feel to Finder but it just kept crashing with newer OS X releases, after that I started using Sourcetree and haven't looked back.
    • Do you think it's worth it for small projects?
      • Aways, it's the rolling back, checking code, having projects backed up ( I use Bitbucket ), sharing, branching with new ideas. It's just an ideal scenario.
    • Do you think it's for everyone?
      • Yes, I honestly do. Having the ability to have different save states whether it's code, images, psd, svg, etc, etc. Also being able to branch off with an idea and if it goes all pear shaped you can just revert back also there is a freedom that allows more experimentation.
    0 points