I love git, but unfortunately, git is not right tool for this task.
Git was designed to very efficiently keep change history for mostly text content repositories. While git does support keeping binaries, it will have to keep them forever in history so you can checkout to any revision, which is very expensive in terms of disk space.
Also, assuming that your binaries are not compressible (pictures, movies, music, etc), size of git object store will be about the same as tree checkout. In other words, for 700GB worth of original files, object store (.git
directory) will consume about as much, and then more when you start committing - adding and removing content.
You can use so called shallow clone, which only keeps last revision of object in object store, but shallow repositories can be only cloned - not committed into. In this case, master git repository must be normal (not shallow) and will be still large, however all shallow clones will be reasonable size.
You probably will be better off by keeping simpler sync scheme like rsync. However, in that case you lose ability to review history - there is no free lunch :(