diff options
| author | codecrafters-bot <hello@codecrafters.io> | 2024-05-31 23:53:46 +0000 |
|---|---|---|
| committer | codecrafters-bot <hello@codecrafters.io> | 2024-05-31 23:53:46 +0000 |
| commit | a44c04461463d7c8c3798fbd29ea16a5d56d4de7 (patch) | |
| tree | 64cb0c5d23429d202fb3459566fd536228f57856 /README.md | |
| download | git-go-a44c04461463d7c8c3798fbd29ea16a5d56d4de7.tar.gz git-go-a44c04461463d7c8c3798fbd29ea16a5d56d4de7.zip | |
init [skip ci]
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..740b5ea --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +[](https://app.codecrafters.io/users/codecrafters-bot?r=2qF) + +This is a starting point for Go solutions to the +["Build Your Own Git" Challenge](https://codecrafters.io/challenges/git). + +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](https://codecrafters.io) to try the challenge. + +# Passing the first stage + +The entry point for your Git implementation is in `cmd/mygit/main.go`. Study and +uncomment the relevant code, and push your changes to pass the first stage: + +```sh +git add . +git commit -m "pass 1st stage" # any msg +git push origin master +``` + +That's all! + +# Stage 2 & beyond + +Note: This section is for stages 2 and beyond. + +1. Ensure you have `go` installed locally +1. Run `./your_git.sh` to run your Git implementation, which is implemented in + `cmd/mygit/main.go`. +1. Commit your changes and run `git push origin master` to submit your solution + to CodeCrafters. Test output will be streamed to your terminal. + +# Testing locally + +The `your_git.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_git.sh` in a different folder when testing locally. +For example: + +```sh +mkdir -p /tmp/testing && cd /tmp/testing +/path/to/your/repo/your_git.sh init +``` + +To make this easier to type out, you could add a +[shell alias](https://shapeshed.com/unix-alias/): + +```sh +alias mygit=/path/to/your/repo/your_git.sh + +mkdir -p /tmp/testing && cd /tmp/testing +mygit init +``` |