9 ms·
I also have found teaching someone how to be even marginally capable of contributing to a Github project from scratch to be a very time consuming and frustratin
by BeefySwain 5y ago
I also have found teaching someone how to be even marginally capable of contributing to a Github project from scratch to be a very time consuming and frustrating thing. Think, having your graphics designer able to make commits, or having someone who only wants to update docs.
The worst part is the "easier" solutions are actually just footguns in disguise, as soon as they accidentally click the wrong thing and end up with a detached HEAD, a few commits ahead and behind the REMOTE, and halfway through a botched merge, you have to figure out how to bail them out of that using a GUI you've never actually used. Knowing all this, you either teach them git (high short term pain, high chance of them just giving up immediately) or you tell them to download the first result for "windows foss git gui" and pray that history won't repeat itself.
- pjc50 5y agoThe solution that everyone actually uses until they learn the unnecessary details is "take a backup of relevant files and blow away & redownload the repo".
- omnibrain 5y agoRelevant xkcd: https://xkcd.com/1597/ https://xkcd.com/1597/
- spicybright 5y agoThe hover text is really good for this one too: > If that doesn't fix it, git.txt contains the phone number of a friend of mine who understands git. Just wait through a few minutes of 'It's really pretty simple, just think of branches as...' and eventually you'll learn the commands that will fix everything.
- cstrat 5y agowait there is another way?
- northwest65 5y agoI've used GitExtensions from the start of my Git usage. I've never had to blow any of my repos away at any point. I also use things like Rebase without thinking about it, something which from what I've read on here is considered a slightly unusual/difficult task. Using GitExtensions means I can use Git as easily as any other tool, I never give it a second thought. I see the command line commands being executed, but never think about them. The flipside is I'd be knackered if I had to use the command line only.
- francislavoie 5y agoI used GitExtension for years, but then I switched to Linux some years ago, so I had to find an alternative. I used SourceTree for a while, but I hated the UX. I tried GitKraken when it first came out, but it had a lot of issues that didn't make it appropriate for my workflow. After a couple more years, GitKraken had improved enough that I was able to switch to it. I've been using it for maybe 4 or 5 years now.
- carlhjerpe 5y agoGitKraken is amazing, I'm a happy customer through work. makes me happy when electron apps aren't crap.
- redler 5y ago“Tower” is quite good. Highly recommended.
- easygenes 5y agoMacOS and Windows only
- happymellon 5y agoThe pricing of GitKraken is a little frustrating. 5 pounds a month is quite a hefty price just to be able to use a private repo. Especially since it has not materially changed for my usage, so I would have been much happier giving them the £50 for a single licence. This is once of those scenarios where subscription for an enterprise might be a thing, but makes no sense for me. The JetBrains model would make sense and I could justify that.
- acomjean 5y agohttps://ohshitgit.com/ https://ohshitgit.com/ It has a few helpful hints.
- post-it 5y ago> Think, having your graphics designer able to make commits, or having someone who only wants to update docs. GitHub's web interface is pretty good for this.
- the8472 5y agoUntil you need them to rewrite history because it consists of 20 "fix" and "update" commits.
- WorldMaker 5y agoThen don't need them to rewrite history? That's kind of on you and your own OCD at that point. If you are making them use a PR workflow anyway, become friends with git options like using --first-parent to shallowly traverse the DAG and let git's tools give you a clean view. (Or use GitHub's PR Squash options, if you really must rewrite history.)
- OJFord 5y agoSomeone that does that isn't going to meaningfully rewrite the history anyway, just squash on merge.
- cxr 5y agoNot really. People say stuff like this, but what they're really talking about is their own familiarity with GitHub (in the vein of <http://lighttable.com/2014/05/16/pain-we-forgot/ http://lighttable.com/2014/05/16/pain-we-forgot/>). What GitHub has going for it is that it is familiar to ("a majority of"?) working developers, and that it's better than both the competition and the Git CLI itself, but from a reality-adjusted perspective, GitHub is pretty bad, too. (Then when people like me make comments like this, others wrongly infer that it comes from a history of false starts and firsthand frustration, unable to conceive that anyone would speak up on this sort of thing if there weren't something personal at stake; no way that it could just be the result of empathy for the uninitiated.) It's pretty tragic that we've basically killed wikis —like, actual wikis—and regressed back to directories of text files managed by version control systems originally meant for handling program source code. That people then go on to call these wikis is basically an insult to history. 52028d35999a481e7cb19b14eae3bf66cb7c9c4fe2e15b56b55f3ccadffeee1f
- pbhjpbhj 5y agoEdit: user post-it already said this, sorry. I'm not experienced here, but is using the GitHub website perhaps the easiest way to submit a PR, that's how I first did it and I think it worked ... I've only really used git privately and for pulling code from public projects.
- jshmrsn 5y agoThis is painfully accurate at every step you outlined.
- francislavoie 5y agoI've successfully gotten non-devs to use Git via GitKraken. Its interface is simple, but doesn't hide anything. Harder to make mistakes because it actually shows you what's going on, and even has an "Undo" button which lets you back out of mistakes most of the time.
- tmm84 5y agoWhen I was just starting out with git and hadn't really learned enough of the more advanced workflows in git I really wanted gitkraken. Much like the jetbrains software it has a license requirement so that can be a turn-off but if you're trying to teach git in a visual way on teaching projects this software is great.
- francislavoie 5y agoIt's free for open source work, and you can sign up as a student if you're still in school to get it for free for a while. But yeah, I pay for it now because it's such a significant time saver for my day-to-day. I'm always aware of what my coworkers are doing because it auto-fetches every minute. I use it for code review as well, because I find it really easy and snappy to navigate file changes in a commit (I always use split view, and I almost always have "hide whitespaces changes" on). I has a great interface for interactive rebases as well, allowing to drag to reorder commits, etc. Good built-in merge conflict resolution tool.
- oldsecondhand 5y agoSourcetree has a quite usable free version, I found it very useful as a beginner but haven't used it in the last 4 years.
- jackcviers3 5y agoI weep for the world now that git is too difficult to understand. It used to explain itself through building your own version of git. You have a file named hash that tracks changes on each file named foo... now all the changes are in a directory named hash...now your changes have to be merged with others... It's kind of up there with next steps after if then else fi. Some things will always be difficult, but diffs and commit and picking one of two possible diffs from two windows should not be one of them.
- Bigpet 5y agoThe issue is not really the base concept. It's layering a huge amount of concepts on top of it. Just think of the "places" a change can be in (technically most of these are just labels on the tree, but they have separate commands to deal with them). Remote, Index, working copy, staging area, stash, branches. Those are the ones involved in the simples way I know how to make the smallest change. When you get up to stuff like submodules, LFS, subtrees then I very much understand when people get frustrated. All most of them wanted is a slight improvement over copying a folder they named myproject_v23 to a network drive.
- prepend 5y agoI just have non-devs use the browser interface and this seems to work for text edits and image uploads and stuff. And some statisticians and stuff only know how to use the GitHub desktop client and that works ok for 99% of them. Drives me crazy because I only use cli and struggle to help when they get blocked with the client.
- jagger27 5y agoThe cynic in me says they’re taking advantage of the fact that the web UI is a lower friction experience to drive more people towards Codespaces (which are not cheap, by the way).
- IfOnlyYouKnew 5y agoMaybe you could tell your cynic that web Interface are intrinsically easier for people used to them, and that for GitHub, the difference hasn’t changed since times when Codespaces neither existed nor were even planned.
- prepend 5y agoPerhaps, but GitLab had a browser ide earlier, and I think theirs is better. So it’s more likely to just be normal GitHub v GitLab feature competition.
- westurner 5y agoMaybe start here: http://learngitbranching.js.org/ http://learngitbranching.js.org/ GitHub Learning Lab: https://lab.github.com/ https://lab.github.com/ https://learnxinyminutes.com/docs/git/ https://learnxinyminutes.com/docs/git/ #Further_resources https://westurner.github.io/tools/#git https://westurner.github.io/tools/#git
- hulitu 5y agoHow about "put your files in this folder then double click this icon (shell script ) ?
- u801e 5y ago> I also have found teaching someone how to be even marginally capable of contributing to a Github project from scratch to be a very time consuming and frustrating thing. Think, having your graphics designer able to make commits, or having someone who only wants to update docs. The question really should be why do we want to use git for version control when people really want an backup system where they can essentially update files by uploading a new version of the file.
- happymellon 5y agoEspecially when they use tools that make files that contain all the history through "non-destructive changes" anyway. But I think the reason is because the mess of folders they then create in DropBox and they can never find their files. What would be great is if someone could make a TimeMachine for non-developers that uses git, because that is what they are doing in their heads anywy.
- u801e 5y agoMost editors and word processors, along with other applications have undo and redo features that allow them to do that. If that could be tied with a timestamp, then it would be easy to see what version of the file they're working with. The only other feature they may find useful is a way to add a note to the file they saved indicating what changed (which would be the equivalent to a commit message). Integrating those file(s) as a submodule or subtree in a git repository would work on the development side, but people who generate those files would have no need to interface with git, and people who use git would not need to use the editor for those files to get the history they need.
- b3morales 5y agoFrontend developers really like their designers to have versions, because it handles the eternal: Designer: Hey, I filed a bug for this, it doesn't look like the design. <screenshot of design they changed yesterday> Developer: Um, we released that like two weeks ago; it's correct according to the design I had at the time. Designer: Yeah, but this is the design <link to continuously updated document in web editor with no history> Maybe you can just fix it really quick today? Doesn't have to be git, but some way to match up releases to the design document that was current at that time is quite useful.
- ducktective 5y agoI can vouch for this TUI interface for git: https://github.com/jesseduffield/lazygit https://github.com/jesseduffield/lazygit
- Jipazgqmnm 5y agoYou might refer them to the manual: https://git-man-page-generator.lokaltog.net/#cGVyZm9ybSQkd29ya2luZyB0cmVl https://git-man-page-generator.lokaltog.net/#cGVyZm9ybSQkd29...
- matkoniecz 5y ago> The worst part is the "easier" solutions are actually just footguns in disguise, as soon as they accidentally click the wrong thing and end up with a detached HEAD, a few commits ahead and behind the REMOTE, and halfway through a botched merge Is graphic designer even going to be able to merge things in their files? It seems that "overwrite my files by data in repository" "apply my changes with message" are all what is necessary? Or is it case of multiple nontechnical people editing files together and expecting to merge changes?
- BeefySwain 5y agoGit merges by default when you pull, for one. Another extremely common pain is trying to "delete" a local commit.
- spockz 5y agoI suppose contributing is easier with the built-in vs code editor now? (Press `.` when logged in.) The only thing lacking is public code spaces. I can’t even try them out without paying for GitHub Teams or GitHub Enterprise.
- stinos 5y agoI suppose contributing is easier with the built-in vs code editor now? (Press `.` when logged in.) Wow, never heard about this (ok I don't follow all possible tech news), but why is this not clearly advertised on github itself? Looks pretty neat and seems to work fine (for what it offers) as well.
- wereHamster 5y agoWow, didn't know that shortcut existed. I can't find `.` on this page: https://docs.github.com/en/get-started/using-github/keyboard-shortcuts https://docs.github.com/en/get-started/using-github/keyboard...
- WhyNotHugo 5y agoYup, most git UIs or wrappers help someone do the most basic operations without learning any git. The problem is, as soon as someone needs any of the non-basic operations, they're completely stuck, and have to start out by learning the basics (which they've managed manged to avoid so far). Plus, each implementation makes up its new terms and abstractions.