Git Bundle

I was Interviewing For a Backend Engineer role and this company, and they sent a coding challenge that was inside a bundle file and believe me when I say I have never used git bundle and I have been using git ever since I started programming. A git bundle file is essentially a full repository in a single file. You can have branches, history, tags, basically everything you expect in a repository, but it's all contained in a single file. This makes sharing the repository or moving the full repository pretty straightforward. Assume I have a git project called project, and I want to send that to someone, else I will have to use git bundle.

mkdir project
cd project
git bundle create shop.bundle master

That will make a bundle file (shop.bundle) that contains all the history of the master branch. You can then send this file to any recipient you want, and they can clone it just like if it were a remote git origin:

git clone -b master ./shop.bundle project
cd project
git status
*
Your branch is up to date with origin master.
nothing to commit, working tree clean*

Another pretty neat thing about git bundles is, if you need to update one, you can send an incremental file update with only the latest changes. The recipient just puts that in place of their existing bundle and runs git pull in their repo.

This isn't something you'd use every day, but in certain situations like sharing your code with your recruiter this comes in handy

More info on git bundle: Git Bundle