Let’s say I was doing stuff in a local directory. I added a large file, I commit and push, but I get an error stating that the file is too large. If I didn’t care about this file making its way to the Github repo, how can I go about removing it from the commit without ruining the rest of my progress? I tried deleting the file, re-adding and re-commiting, but I get the same error when I push. So far my workaround has been to copy everything in the directory except .git to a different, temporary folder, revert to origin/master, and then replace everything back in with the changes I want. I haven’t found a good solution for just… ignoring the large file or removing it from the commit, nothing I’ve found online has worked and the commit always just fails because of the large file.

Edit: hey everyone thanks for all the replies! I appreciate it, I’ll have to test out these sometime.

  • VibeSurgeon@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 days ago

    If it’s the last commit, you can undo the commit, and re-make it as you please by using git reset HEAD~1. You can then stage the files you actually want in the commit.

    Another option is to amend the commit to not include that file, by doing git rm --cached <filename> followed by git commit --amend.

    The reason you can’t do the prior in a separate follow-up commit is that the file would still be in the git history, and hence it must be pushed to GitHub along with the rest of the repo files.

    If the problem is not on the latest commit, you can do an interactive rebase, and re-do the commit that way.

    • ComicalMayhem@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      4 days ago

      The reason you can’t do the prior in a separate follow-up commit is that the file would still be in the git history, and hence it must be pushed to GitHub along with the rest of the repo files.

      This makes sense. Is it possible to delete the offending commit completely? I use github like a cloud service for files, writing, and class notes, mostly just to push things from my laptop to my desktop and vice versa, so I’m not particularly worried about keeping commit history or anything. If not, then I’ll try out the rm method.

      • communism@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        3 days ago

        Is there a reason why you don’t use conventional cloud storage? The only reason I can think for someone to use a git forge for generic cloud storage is the version history, which you’ve said you don’t need. Something like your OP problem wouldn’t happen for a conventional cloud provider.

        • ComicalMayhem@lemmy.worldOP
          link
          fedilink
          arrow-up
          0
          ·
          3 days ago

          price, desire to keep out of commercial cloud providers + inability to host my own private cloud service, desire/need to be more familiar with git in general as a compsci major, and ease of use. those are pretty much the main reasons

          • communism@lemmy.ml
            link
            fedilink
            arrow-up
            2
            ·
            3 days ago

            desire to keep out of commercial cloud providers

            I’m afraid that GitHub is run by Microsoft and I would consider it pretty thoroughly corporate these days.

            Fair enough if you want to get more familiar with git (although using it as a cloud service is basically just gonna be add all and then commit, surely? you’re not practising any other git operations if only using as cloud storage?), but people normally do this with programming projects, which you should have no shortage of as a CS major.

            • ComicalMayhem@lemmy.worldOP
              link
              fedilink
              arrow-up
              1
              ·
              3 days ago

              I’m afraid that GitHub is run by Microsoft and I would consider it pretty thoroughly corporate these days

              Ah. Did not know that. That’s… unfortunate.

              although using it as a cloud service is basically just gonna be add all and then commit, surely? you’re not practising any other git operations if only using as cloud storage?

              This is true enough actually but it helped drill the process into my head when I first started it and I found it simple enough to use after a while, esp since I just wrote a bash function to cut down on cd’ing.

              but people normally do this with programming projects, which you should have no shortage of as a CS major.

              You’d be surprised.