Difference between Git and Nexus?
I can't seem to find what the difference is between Git and Nexus. Are the two comparable?
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.
@VonC has the high level, theoretical view.
In everyday use, you'd store your source code and its history in a git repository, and store your build artifacts (e.g. the compiled software you want to deliver) in Nexus.
As such, they are not really comparable, but complementary.