Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

progress-banner

This is a starting point for Go solutions to the "Build Your Own Git" Challenge.

In this challenge, you'll build a small Git implementation that's capable of initializing a repository, creating commits and cloning a public repository. Along the way we'll learn about the .git directory, Git objects (blobs, commits, trees etc.), Git's transfer protocols and more.

Note: If you're viewing this repo on GitHub, head over to codecrafters.io to try the challenge.

Passing the first stage

The entry point for your Git implementation is in app/main.go. Study and uncomment the relevant code, and then run the command below to execute the tests on our servers:

codecrafters submit

That's all!

Stage 2 & beyond

Note: This section is for stages 2 and beyond.

  1. Ensure you have go (1.26) installed locally
  2. Run ./your_program.sh to run your Git implementation, which is implemented in app/main.go.
  3. Run codecrafters submit to submit your solution to CodeCrafters. Test output will be streamed to your terminal.

Testing locally

The your_program.sh script is expected to operate on the .git folder inside the current working directory. If you're running this inside the root of this repository, you might end up accidentally damaging your repository's .git folder.

We suggest executing your_program.sh in a different folder when testing locally. For example:

mkdir -p /tmp/testing && cd /tmp/testing
/path/to/your/repo/your_program.sh init

To make this easier to type out, you could add a shell alias:

alias mygit=/path/to/your/repo/your_program.sh

mkdir -p /tmp/testing && cd /tmp/testing
mygit init

About

A project to understand how Git works under the hood (in collaboration with CodeCrafters)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages