There are both referential:
- one (Git) is a source referential for version control (with features like merging, branching, tags)
- the other (Nexus) is an artifact referential for any delivery (binaries or not)
The referential database differs also:
- Git has its own internal repository storage mechanism
- Nexus is simply a collection of shared directories with a naming convention ( group.artifact.version ).
As described in “What is a repository“: a collection of binary software artifacts and metadata stored in a defined directory structure.
The idea is that, for large deliveries that can be produced quite often, it is much easier to store them in Nexus ( you can clean them easily enough: cd
+ rm
), as opposed to version them ( which makes a DVCS repo like Git way too big way too fast to be cloned easily ).
So their goals are different, as I explain in:
- “How do different version control systems handle binary files?“
- “Best practice to store .jar files in VCS (SVN, Git, …)“
- “Using source controlled libraries in source controlled projects“
You manage what you code in Git, and what you build in Nexus.