From a44c04461463d7c8c3798fbd29ea16a5d56d4de7 Mon Sep 17 00:00:00 2001 From: codecrafters-bot Date: Fri, 31 May 2024 23:53:46 +0000 Subject: init [skip ci] --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..740b5ea --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +[![progress-banner](https://backend.codecrafters.io/progress/git/a0fbaf41-ecab-49b7-b1fe-2f0f7ac701a3)](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 +``` -- cgit v1.2.3