On 2020-10-25, at 5:25 AM, Konstantin Khomoutov <kos...@bswap.ru> wrote:
> Aren't you using Git in a way it wasn't supposed to be used? ;-) > Git is indeed a content-addressable filesystem in its core "In a way it wasn't supposed to be used" implies that there is a way it was supposed to be used. If there is such a way, I've never seen it documented. Git, to me at least, seems like the assembly language / virtual machine for an immutable system of datablobs, that has a "file system" of sorts layered on top of that (well, more accurately, many many file systems that all share the same datablobs). At the lowest level, as long as one of the reachable filetrees has a reference to a datablob somewhere, then that datablob will not be garbage collected -- but if you disable the garbage collection system, or use a custom one, then arbitrary datablobs not even referenced in a git file tree can be stored in the packs. Built on top of this, like the C language, is a version control system, that seems like the assembly language of VCS systems. For anything that you want to do, there's multiple ways to do it. Rules for how you set up a bunch of repositories for many developers to work together on a project are numerous, all different, and the procedures and best practices at one place might be different at another place, depending on whether you have a "privileged publishing master" or not. Depending on whether or not each person treats their own "master" as their own version, or if "master" is the shared current best version and everyone has their own forks off that. Depending on whether or not you are set up for a triangle flow, and which version of triangle flow you use. Depending on whether or not you do plain rebasing, or imerge-based rebase with history. Depending on whether or not you use the "git flow" branching system, or some other branching system. Depending on whether or not you do squashed merges. Etc. There are too many different "how do I use git as a VCS" options, and frankly, I've never seen a really good "best practices" that covers all the bases. Just that what you want to be able to do with git determines which of the many ways to do things you will do -- and if there is a "If this is your goal, then this is your setup" document that addresses the many different "this is what I want to be able to do", I haven't seen it. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/git-users/D6D994FB-DF20-49AB-AF19-4BD4C394D4FA%40gmail.com.