git-lfs
cobra
Our great sponsors
git-lfs | cobra | |
---|---|---|
158 | 128 | |
12,346 | 35,583 | |
1.2% | - | |
9.1 | 7.8 | |
7 days ago | 7 days ago | |
Go | Go | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
git-lfs
- Twenty Years Is Nothing
-
Aho – a Git implementation in Awk
It doesn't, since Git's data model has to be changed to content-defined chunks to solve the issue.
You should look at git-lfs[1] instead.
-
Launch HN: Diversion (YC S22) – Cloud-Native Git Alternative
Congrats on the HN launch. How does this improve or expand or blow git-lfs[1] out of the water because if I needed large blob file support it's what I would use instead. It offers pointers to the big files to the hosted git instead of pushing around the binaries itself -- though I am speculating since I've not used it myself just read about it online.
-
Ask HN: Can we do better than Git for version control?
fine with layers: e.g., large binary files via git-lfs (https://git-lfs.com) and merge conflicts in non-textual files by custom merge resolvers like Unity’s (https://flashg.github.io/GitMerge-for-Unity/).
Perhaps in the future, almost everyone will keep using Git at the core, but have so many layers to make it more intuitive and provide better merges, that what they’re using barely resembles Git at all. This flexibility and the fact that nearly everything is designed for Git and integrates with Git, are why I doubt it’s ever going away.
Some alternatives for thought:
- pijul (https://pijul.org), a completely different VCS which allegedly has better merges/rebases. In beta, but I rarely hear about it nowadays and have heard more bad than good. I don’t think we can implement this alternate rebases in Git, but maybe we don’t need to; even after reading the website, I don’t understand why pijul’s merges are better, and in particular I can’t think of a concrete example nor does pijul provide one.
- Unison (https://www.unison-lang.org). This isn’t a VCS, but a language with a radical approach to code representation: instead of code being text stored in files, code is ASTs referenced by hash and stored in essentially a database. Among other advantages, the main one is that you can rename symbols and they will automatically propagate to dependencies, because the symbols are referenced by their hash instead of their name. I believe this automatic renaming will be common in the future, whether it’s implemented by a layer on top of Git or alternate code representation like Unison (to be clear, Unison’s codebases are designed to work with Git, and the Unison project itself is stored in Git repos).
- SVN, the other widespread VCS. Google or ask ChatGPT “Git vs SVN” and you’ll get answers like this (https://www.linode.com/docs/guides/svn-vs-git/, https://stackoverflow.com/a/875). Basically, SVN is easier to understand and handles large files better, Git is decentralized and more popular. But what about the differences which can’t be resolved by layers, like lazygit for intuition and git-lfs for large files? It seems to me like even companies with centralized private repositories use Git, meaning Git will probably win in the long term, but I don’t work at those companies so I don’t really know.
- Mercurial and Fossil, the other widespread VCSs. It seems these are more similar to Git and the main differences are in the low-level implementation (https://stackoverflow.com/a/892688, https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki#....). It actually seems like most people prefer Mercurial and Fossil over Git and would use them if they had the same popularity, or at least if they had Git’s popularity and Git had Mercury or Fossil’s. But again, these VCSs are so similar that with layers, you can probably create a Git experience which has their advantages and almost copies their UI.
- We Put Half a Million Files in One Git Repository, Here's What We Learned (2022)
-
Show HN: Gogit – Just enough Git (in Go) to push itself to GitHub
I don’t know what that is, but their docs very prominently and strongly say this:
> However, we do not maintain a stable Go language API or ABI, as Git LFS is intended to be used solely as a compiled binary utility. Please do not import the git-lfs module into other Go code and do not rely on it as a source code dependency.
> I don’t know what that is
its a standard output from `go doc`, rendered as HTML. if you dont recognize that, then you aren't really in a position to be commenting on the topic. nothing is stopping anyone from pinning to a tag:
https://github.com/git-lfs/git-lfs/tags
or even a commit and relying of a specific version of the software. yes upgrades might be painful but a module IS available.
-
Unable to push because of large file deleted in the past
# git push origin feature-branch /usr/bin/gh auth git-credential get: 1: /usr/bin/gh auth git-credential get: /usr/bin/gh: not found /usr/bin/gh auth git-credential store: 1: /usr/bin/gh auth git-credential store: /usr/bin/gh: not found Enumerating objects: 9228, done. Counting objects: 100% (7495/7495), done. Delta compression using up to 8 threads Compressing objects: 100% (2090/2090), done. Writing objects: 100% (6033/6033), 72.77 MiB | 7.39 MiB/s, done. Total 6033 (delta 4402), reused 5194 (delta 3616) remote: Resolving deltas: 100% (4402/4402), completed with 477 local objects. remote: error: Trace: c1c90b47a5483929dcdd8c974a6c7d0695e86f67f680d8b88b80ef1c1bce74a remote: error: See https://gh.io/lfs for more information. remote: error: File deployment_20200220.sql is 872.78 MB; this exceeds GitHub's file size limit of 100.00 MB remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. To https://github.com/my-org/my-project.git ! [remote rejected] rest-logging -> rest-logging (pre-receive hook declined) error: failed to push some refs to 'https://github.com/my-org/my-project.git'
- What and Why, Git LFS?
-
Coding your own AI in 2023 with fastai
Before commit we need to install git-lfs first, because our model.pkl file is too big. Follow the link and the instructions to install it for your operating system. Now we are able to use git-lfs for our model.pkl:
cobra
-
Build your own curl in Golang
In this tutorial, we'll walk through the process of creating a simple command-line tool similar to curl using Go and Cobra, a CLI library for Go.
-
Scripts should be written using the project main language
I use https://github.com/spf13/cobra religiously for this kind of thing - it handles all the annoying corner cases of parsing flags, and also has an intuitive notion of subcommands (with basic usage/help text generated) for picking which task you want to run with positional arguments.
-
Command Line Interface Guidelines
We recently chose cobra[1] to create a cli application. It comes with so many best practices already packaged like autocompletions, help texts etc. etc.
-
What 3rd-party libraries do you use often/all the time?
github.com/spf13/cobra
- O poder do CLI com Golang e Cobra CLI
-
Dockerizing Golang CLI Tool - A Step-by-Step Guide
For installing Cobra-CLI you can go to Cobraor run go install github.com/spf13/cobra-cli@latest in the terminal.
-
Packaging Go for Arch Linux Tutorial
In my build phase, I compile the source to create a k3sup binary and I also run the binary to generate shell script completions. Give kudos to this functionality which comes from spf13/cobra Go library for CLIs.
-
Add License Headers to Your Code Files
NWA is a command-line tool built on cobra. Here's an overview of NWA's commands:
-
Auto-Completion and Cocktail mixing with Golang’s Cobra CLI
Cobra is a library for creating powerful modern CLI applications. https://github.com/spf13/cobra
In this post we explain how to implement custom auto-completion ability for a CLI tool written in Go and using Cobra. We start by walking through the creation of a tiny mixologist app using Cobra. The mixologist app is a CLI tool written in Go using the Cobra framework that can make cocktails from a list of ingredients and uses custom auto-completion to improve the user experience. For reference, the code for the CLI application can be found here: https://github.com/rafttio/mixologist
What are some alternatives?
urfave/cli - A simple, fast, and fun package for building command line apps in Go
cli - CLI - A package for building command line app with go
kingpin - CONTRIBUTIONS ONLY: A Go (golang) command line and flag parser
kong - Kong is a command-line parser for Go
go-flags - go command line option parser
mitchellh/cli - A Go library for implementing command-line interfaces.
pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
onedrive - OneDrive Client for Linux
mow.cli - A versatile library for building CLI applications in Go
argparse - Argparse for golang. Just because `flag` sucks
git-fat - Simple way to handle fat files without committing them to git, supports synchronization using rsync
Gitea - Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD