|But you should still fork the main repository to create your own repository, and then clone your own repository.[[br]]
|On your local (cloned) repository, set up a "remote" that points to the GCI repository. Open the repository page:[[br]]
|On the right, there will be a box that says "SSH clone URL" or "HTTPS clone URL" -- that will be the URL to use for your new remote.
|If you are using git from the command line, cd to your local eden repository, and do this if you are using a password to connect
|to !GitHub (this is the "HTTPS clone URL"):
|git remote add edengci https://github.com/edengci/eden.git
|Or do this if you are using SSH keys to connect to !GitHub (this is the "SSH clone URL"):
|git remote add edengci email@example.com:edengci/eden.git
|We are going to collect up student work for several days, and then test it and submit it all together to the main repository.
|Because of that, we won't update from the main repository during that time. This will fix the problem students saw with having
|extra commits from the main repository that were not in the GCI repository appear in their pull requests.
|We are going to use a branch called "staging" to hold students' work, so when you are ready to start working on code, you can
|pull a copy of this branch to your local repository. This is where you will send pull requests. To get a copy of this branch:
|git pull edengci staging:your-branch-name
|You can call your local branch whatever you want. One suggestion is to pull a fresh copy of the staging branch when you are about
|to start a new task. (You can keep any old branch you were working on for previous tasks, or delete it after your pull request for
|the previous task is accepted and merged into the staging branch. But it is better not to reuse that branch to avoid unexpected
|merge issues with new work. If you want to use the same branch name, then you can rename your old branch.)
|Note, your commits will still have your name on them as author when they get into the main repository!
|The steps to submit your work are similar to those in the git wiki page linked above -- differences are noted here.
|* "Squash" your commits into one.
|* ''This is different:'' Don't rebase from the main repository -- instead, rebase *from the staging branch* -- the same branch you will send the pull request to.
|git pull --rebase edengci staging
|* Push your commit to your Eden repository on !GitHub.
|* Open the !GitHub page for your Eden repository.
|* Click the "Compare and Create Pull Request" button shown on that commit.
|* ''This is different:'' The pull request page has a line that shows which repository and branch you are sending the pull request too.
| You will need to change both, to the GCI repository and the "staging" branch.
| * There will be a down-arrow next to the repository -- that will give you a list of repositories. Select the GCI repository.
| * Then use the down-arrow on the branch -- select "staging".
|* Create the pull request.
|* Continue with the code review as usual.