This message comes from this bit of git source code:
git_SHA1_Final(parano_sha1, &c);
if (hashcmp(sha1, parano_sha1) != 0)
die("confused by unstable object source data for %s", sha1_to_hex(sha1));
What this means is that the contents of the file changed between the time git first looked at it (to determine the file's content-based SHA-1 object-name) and the time git was able to make a compressed "loose" object out of it.
That would happen if something is actively modifying the file while you're trying to add-and-commit it. Git needs a "stable snapshot" version (lock the file, or make a "safe" copy that won't change while git digests it, or some such).
That said, there are limits on the size of "reasonable" files in a git repository. See this answer by VonC (it has another link to a more detailed answer, also by VonC).
In the past, I worked with 2-4GB "files" within a repository, and they worked, but we were already abusing the idea of a "git repository" by then. These would also sometimes blow out the memory limits on very small servers: the problem is that the deltifier in the pack-file builder tries to mmap
everything. On bigger machines, you can make bigger pack-files, and then the smaller machines just break.
If you have enough RAM, it's possible. I would recommend against it though, at least until git has better large-file-handling algorithms.