midwest.social

doppelgangmember, to programmerhumor in I'm going to sit down and actually learn git this week

Just rebase your life already

dan, to programmerhumor in I'm going to sit down and actually learn git this week
@dan@upvote.au avatar

Honestly, just use a GUI. Graphical user interfaces were designed for a reason. I usually use SourceTree or the Git functionality built in to Visual Studio or VS Code.

It’s good to know how things work under-the-hood (e.g understand Git’s object model, some basic commands, etc) but don’t feel like you need to use the command-line for everything.

zalgotext,

In my experience, using GUIs is how people fuck themselves, and then I have to unfuck them via the command line.

Git’s interface is bad, yes. It has a step learning curve, yes. But I truly think the only real way to overcome those obstacles is to learn how git works, learn all the nitty gritty details, not hide from them.

CapeWearingAeroplane,

I use a GUI (GitKraken) to easily visualise the different branches I’m working on, the state of my local vs. the remote etc. I sometimes use the gui to resolve merge conflicts. 99 % of my gut usage is command line based.

GUI’s definitely have a space, but that space is specifically doing the thing the command line is bad at: Visualising stuff.

lseif,

lazygit or tig are terminal interfaces for git. very nice, best of both worlds imo. every action shows the git command ran at the bottom, and its a lot easier to see at a glance the status, diff, log, etc.

kamen,

My take is use a GUI for anything read-only/nondestructive (i.e. anything that won’t modify your local or remote state). It’s nice for example to compare the state of two branches.

For anything that does changes make sure you know what’s happening under the hood, otherwise you might shoot yourself in the foot. It’s convenient for example to do a commit and push in one go, but then you lose the ability to edit any changes (you’re forced to either do another commit, or change your local commit and force push).

In VSCode you can go to the Output pane and switch to Git - there you’ll see everything that gets done through Git’s CLI for whatever you do through the GUI (although it can be a bit noisy); same goes other GUI utils.

shiveyarbles, to programmerhumor in I'm going to sit down and actually learn git this week

When we switched from svn, we had to figure out git with submodules… that was fun

fer0n, to programmerhumor in I'm going to sit down and actually learn git this week

This has been the best git tutorial I’ve come across so far. Nicely interactive and gamified. learngitbranching.js.org

UNWILLING_PARTICIPANT,

This is great, but I just want to say that the best way to use git is to simply stop doing so much in one branch. Branches should not last longer than a week, ideally

ArbitraryValue, to programmerhumor in I'm going to sit down and actually learn git this week
  1. git pull
  2. git reset --hard HEAD
  3. try not to cry
  4. cry a lot
CalcProgrammer1,
@CalcProgrammer1@lemmy.ml avatar

git reflog, you can get your old commits back

ArbitraryValue,

But I want to pretend none of this ever happened.

winterayars,

<span style="color:#323232;">git can we just pretend the last 30 minutes never happened
</span>

I feel like that would get more use than people want to admit.

TeaHands, to programmerhumor in I'm going to sit down and actually learn git this week
@TeaHands@lemmy.world avatar

Highly recommend bookmarking ohshitgit.com, it’ll steer you right 👍

erogenouswarzone, (edited ) to programmerhumor in I'm going to sit down and actually learn git this week
@erogenouswarzone@lemmy.ml avatar

Great meme, and I’m sure op knows this, but for anyone else who is curious…

007 in theory means:

  • 00: you have already committed your code to your local code base
  • 7: When you try to merge your code with everyone else’s there are 7 files that others have worked on since you last refreshed your local code base.

To resolve this, you need to go file by file and compare your changes with the changes on the remote code. You need to keep the changes others have made and incorporate your own.

You can use git diff file_name to see the differences.

If you have made small changes, it’s easier to pull and force an overwrite of your local code and make changes again.

However multiple people working on the same files is usually a sign of organizational issues with management. Ie, typically you don’t want multiple people working on the same files at the same time, to avoid stuff like this.

If you’re not sure, ask someone that knows what they’re doing before you follow any advice on Lemmy.

aniki,

deleted_by_author

  • Loading...
  • jjjalljs,

    If I get a big conflict and I know my change is trivial, I feel perfectly okay doing git fetch git reset --hard whatever and then reapplying my simple change as a new commit. Sort of a bootleg rebate.

    zalgotext,

    If you use a squash workflow, you’re going to be force pushing a ton.

    Never force git to do anything. If you’re forcing something you’re doing it wrong.

    This is bad advice. Better advice would be “know and understand your tool, and know the consequences of your actions”.

    erogenouswarzone,
    @erogenouswarzone@lemmy.ml avatar

    I hear what you’re saying.

    First, I hard disagree with you. Overwriting my local version of code is a parachute - not an ideal landing, but better than merging by hand.

    Also, my comment was not an attempt to teach everything about git, just to explain what is happening in simple terms, since git requires a lot of experience to understand what those messages mean.

    Haus, to programmerhumor in I'm going to sit down and actually learn git this week
    @Haus@kbin.social avatar

    sccs, rcs, cvs... after that it's a blur of new systems every year or two

    kautau,

    sccs

    1973

    rcs

    1982

    git

    2005

    How long are your years?

    flambonkscious,

    Maybe they’re born on a leap year…

    And a dog?

    pelya,

    Subversion is as good as it can get with centralized version control system.

    CVS is only one step up above FTP file server for all your code.

    wewbull,

    I’d agree if anyone actually used the distributed nature of DVCS

    lily33, to programmerhumor in I'm going to sit down and actually learn git this week

    Learning git is very easy. For example, to do it on Debain, one simply needs to run, sudo apt install lazygit

    Kata1yst,
    @Kata1yst@kbin.social avatar

    LazyGit may actually be black magic from Satan to tempt programmers into sin. And to that I say: 'where is a goat I can sacrifice to my dark lord?'

    Bipta,

    Wow this looks great. Amend an old commit dealing with a rebase? Sign me up!

    zalgotext,

    git rebase -i origin/main (or whatever branch you’re rebasing on), then read the instructions that come up in the editor window

    corytheboyd,
    @corytheboyd@kbin.social avatar

    Read… instructions? I love teaching people that git very often prints out what you should do next.

    git: “to continue, resolve conflicts, add files, and run rebase —continue”
    dev: …time to search stack overflow

    All that said… just use lazygit. It does help to know CLI git first to put things in context, but if you do, no need to punish yourself every day by not using a UI.

    Skullgrid, to programmerhumor in I'm going to sit down and actually learn git this week
    @Skullgrid@lemmy.world avatar

    …not by choice, because if I don’t I’ll lose my job

    DarkwinDuck, to programmerhumor in I'm going to sit down and actually learn git this week

    So you’re going to git gud?

    brothershamus,
    @brothershamus@kbin.social avatar

    git out

    UNWILLING_PARTICIPANT,

    git your pants

    UlyssesT, to random in Anti-Vax Cringtian

    Coptium. kelly

    HubertManne, to random in Remember when they used to hide there bigotry
    @HubertManne@kbin.social avatar

    How long ago was that social media post. It was from season 1.

    Doug,

    Looks like six years in a little more than a week, based on the timestamp at the bottom of the screenshot

    HubertManne,
    @HubertManne@kbin.social avatar

    ah I missed that. thanks.

    mojo, to random in Anti-Vax Cringtian

    This definitely looks like satire

    eva_sieve, to risa in He tries so hard because he doesn't want to be remembered as "the other Captain Ransom"

    minor bit of pedantry, a minute isn’t that silhouette the Kelvin-verse Enterprise?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • KamenRider
  • Ask_kbincafe
  • TheResearchGuardian
  • KbinCafe
  • Socialism
  • oklahoma
  • SuperSentai
  • feritale
  • All magazines