From 9addbfb3f0f2ee4fe2d27b4fe5b2927188c8ddca Mon Sep 17 00:00:00 2001 From: Jennifer Date: Fri, 15 Jun 2018 17:05:37 -0700 Subject: [PATCH 1/2] created how-to-gitea first draft --- how-to-gitea.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 how-to-gitea.md diff --git a/how-to-gitea.md b/how-to-gitea.md new file mode 100644 index 0000000..1842505 --- /dev/null +++ b/how-to-gitea.md @@ -0,0 +1,77 @@ +# Gitea cheat sheet for beginners and the forgetful +Below is the basic Gitea workflow, to help you with your contributions. But do not hesitate to reach out to any of the organizers for help! We're happy to walk you through any or all of this, no matter what your experience level. If you've never even heard of Gitea before, we'd love to help you submit your first contribution! + +If you want to delve even deeper into Git (perhaps because you are a glutton for punishment), there is a ton of information in this [Git Book (link)](https://git-scm.com/book/en/v2). + +## Basic Steps For Contributing +These are the general steps, but if you need more information, keep reading below. + +* Fork the repository (just once!) from [Lollipop Cloud project page (link)](https://git.lollipop.holdmybeer.solutions/) +* Clone your fork on your own computer +* Edit, make changes and contributions +* Push those changes to your fork +* Open a merge/pull request in Gitea +* Wait for project coordinator to provide feedback or approve the merge/pull request + +## What to do if you've never done this before... + +### Log in to Gitea +If you haven't already, create an account on the [Lollipop Cloud project page (link)](https://git.lollipop.holdmybeer.solutions/) and log in. + +### Fork it! (copy the project to your Gitea account) +View the repository you would like to work on (code, docs, website), and click `Fork` in the upper right corner. You will only have to fork once! + +A fork is an exact copy of the project as it existed at the exact moment you forked it. So when the project updates in the future, you will have to update your code too, but we will talk about that later. + +At this point, you will need a command line client like [PuTTY (link)](https://putty.org/) for Windows users, or the built-in Terminal for MacOS users. + +### Create a directory (an empty folder) for where you'd like your copy of the project to live, and open it. +In PuTTY or Terminal, enter each of the following commands, where "lollipop_project" is the name of directory where you would like to store the clone. + +`mkdir /path/to/lollipop_project` + +`cd /path/to/lollipop_project` + +### CLONE (create a local copy) of the project files +View your newly created fork in your web browser and copy the https:// address in the box on the right side of the page. +In your terminal program, enter `git clone https://git.lollipop.holdmybeer.solutions/your-username/forked-repository`, with the correct URL. +You are downloading all the project files to your computer! Yay! + +### View your cloned project +Git will install the project in a new folder. Use the command `ls` to see the name of the new project folder if you are unsure. Open this new folder with +`cd cloned_directory_name` + +### Edit your contributions! +Now that the files live locally on your computer, you can edit them with your favorite editor. Stick with the command line (Vim, Emacs, Nano), or use a text editor like [Atom (link)](https://atom.io/). + +### Commit your changes +When you're ready, go back to the command line and commit your changes with a short but descriptive comment. +`git commit -m "Updated List of Anthropomorphic Potatoes"` + +### Push your changes to your fork +When you're really ready, "push" those changes to the original source, which is a request to accept and merge your contributions with the rest of the project. A push request and a merge request are the same thing. +`git push origin master` + +### Create a pull request (AKA merge request) + +Go back to your browser and your forked repository `https://git.lollipop.holdmybeer.solutions/your-username/forked-repository` and go to Pull Requests and choose `New Pull Request`. _[this step gets muddy and needs clarification.]_ + +## What to do when "upstream" changes... +"Upstream" is the name of the original code (not your fork). When it gets updated after you clone or fork, you will have to request a copy of those changes to stay up-to-date. + +### Add the upstream path (Do this step only once!) +If the master (where you forked FROM) changes, you will have to update your local clone. You will only have to do this step ONE time! + +From your `/path/to/lollipop_project/new_clone_directory/` directory, + +Do this: `git remote add upstream https://git.project-domain.com/forked_from/original_repository.git` with the original repository URL. + +### Fetch the changes since you first forked or last fetched changes +In order to be sure you're working off the latest copy of the project, you can fetch the latest changes with `git fetch upstream` + +Now you have the latest copy of the project in your local directory. Your new changes from this point forward will be stored in a local branch called `upstream/master`. + +Make your edits! + +### Merge your changes with the upstream repo (the original repo that you forked). +`git merge upstream/master` From 5046fb30a64f0d5a3e523374713b3d4bfa4cdb1d Mon Sep 17 00:00:00 2001 From: Jennifer Date: Sun, 17 Jun 2018 16:43:48 -0700 Subject: [PATCH 2/2] finished how-to-gitea --- how-to-gitea.md | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/how-to-gitea.md b/how-to-gitea.md index 1842505..c5e4634 100644 --- a/how-to-gitea.md +++ b/how-to-gitea.md @@ -1,10 +1,12 @@ # Gitea cheat sheet for beginners and the forgetful Below is the basic Gitea workflow, to help you with your contributions. But do not hesitate to reach out to any of the organizers for help! We're happy to walk you through any or all of this, no matter what your experience level. If you've never even heard of Gitea before, we'd love to help you submit your first contribution! -If you want to delve even deeper into Git (perhaps because you are a glutton for punishment), there is a ton of information in this [Git Book (link)](https://git-scm.com/book/en/v2). +This document gets wordy because Git is not as welcoming to beginners as we wish it was, but you can do it! And you're not alone! We are just a message or comment away. There are even more resources in the [Bibliography](#Bibliography) at the end, if you want to dive deeper. You may even want to skip this document entirely at first, and try [Your First Pull Request (link)](https://joshuahunter.com/posts/your-first-pull-request/) more suited to your needs. -## Basic Steps For Contributing -These are the general steps, but if you need more information, keep reading below. +If you just can't get enough Git (perhaps because you are a glutton for punishment), check out the [Git Book (link)](https://git-scm.com/book/en/v2). + +# Basic Steps For Contributing +These are the general steps, but if you need more information, keep reading. * Fork the repository (just once!) from [Lollipop Cloud project page (link)](https://git.lollipop.holdmybeer.solutions/) * Clone your fork on your own computer @@ -13,7 +15,7 @@ These are the general steps, but if you need more information, keep reading belo * Open a merge/pull request in Gitea * Wait for project coordinator to provide feedback or approve the merge/pull request -## What to do if you've never done this before... +# And now... what to do if you've never done this before ### Log in to Gitea If you haven't already, create an account on the [Lollipop Cloud project page (link)](https://git.lollipop.holdmybeer.solutions/) and log in. @@ -37,24 +39,35 @@ View your newly created fork in your web browser and copy the https:// address i In your terminal program, enter `git clone https://git.lollipop.holdmybeer.solutions/your-username/forked-repository`, with the correct URL. You are downloading all the project files to your computer! Yay! -### View your cloned project +### View your cloned project on your computer Git will install the project in a new folder. Use the command `ls` to see the name of the new project folder if you are unsure. Open this new folder with -`cd cloned_directory_name` +`cd cloned_directory_name` to see what was installed. ### Edit your contributions! -Now that the files live locally on your computer, you can edit them with your favorite editor. Stick with the command line (Vim, Emacs, Nano), or use a text editor like [Atom (link)](https://atom.io/). +Now that the files live locally on your computer, you can edit them with your favorite editor. Stick with the command line (Vim, Emacs, Nano), or use a text editor like [Atom (link)](https://atom.io/). Be sure to save your changes! + +### Add your changed files to git, to prepare them for uploading +If you added new files to the project, in your terminal you will have to `git add edited-file-name` for each of those new files. ### Commit your changes When you're ready, go back to the command line and commit your changes with a short but descriptive comment. `git commit -m "Updated List of Anthropomorphic Potatoes"` ### Push your changes to your fork -When you're really ready, "push" those changes to the original source, which is a request to accept and merge your contributions with the rest of the project. A push request and a merge request are the same thing. +When you're really ready, "push" those changes to the original source, which is a request to accept and merge your contributions with the rest of the project. **Note:** A push request and a merge request are the same thing. `git push origin master` ### Create a pull request (AKA merge request) -Go back to your browser and your forked repository `https://git.lollipop.holdmybeer.solutions/your-username/forked-repository` and go to Pull Requests and choose `New Pull Request`. _[this step gets muddy and needs clarification.]_ +Go back to your browser and your forked repository `https://git.lollipop.holdmybeer.solutions/your-username/forked-repository` and go to Pull Requests and choose `New Pull Request`. + +There will be two drop-down menus that will probably say `base: master` and `compare: master`. (As you get more advanced, you can create branches to compare. For our purposes, just select the two available branches that are probably named `master`. The "base" fork is the original project, NOT your forked version.) Enter a short title for the changes, a description to help reviewers understand your contributions, and click the big `Submit Pull Request` button below your text. + +## Congratulations! You've submitted your first pull request! 🎉 + +The developers will review your changes and work with you on next steps. + +# Troubleshooting ## What to do when "upstream" changes... "Upstream" is the name of the original code (not your fork). When it gets updated after you clone or fork, you will have to request a copy of those changes to stay up-to-date. @@ -67,7 +80,7 @@ From your `/path/to/lollipop_project/new_clone_directory/` directory, Do this: `git remote add upstream https://git.project-domain.com/forked_from/original_repository.git` with the original repository URL. ### Fetch the changes since you first forked or last fetched changes -In order to be sure you're working off the latest copy of the project, you can fetch the latest changes with `git fetch upstream` +In order to be sure you're working off the latest copy of the project, you can fetch the latest changes with `git fetch upstream`. (Note: this can only be done at the command line, not the user interface/URL.) Now you have the latest copy of the project in your local directory. Your new changes from this point forward will be stored in a local branch called `upstream/master`. @@ -75,3 +88,16 @@ Make your edits! ### Merge your changes with the upstream repo (the original repo that you forked). `git merge upstream/master` + + +# Bibliography + +* [Atom text editor (link)](https://atom.io/) +* [Git Book (link)](https://git-scm.com/book/en/v2) +* [Git Cheat Sheet (link)](https://github.com/mikeizbicki/ucr-cs100/blob/2015winter/textbook/cheatsheets/git-cheatsheet.md): May be helpful for setting up Git from scratch. +* [Git Cheat Sheet - Advanced (link)](https://github.com/mikeizbicki/ucr-cs100/tree/2015winter/textbook/tools/git/advanced-git) +* [Git Game (link)](https://www.git-game.com/): get serious about Git by gameifying your learning. +* [Oh shit, git! (link)](http://ohshitgit.com/): how to fix a few Git mistakes (we all make them!) +* [PuTTY SSH and telnet client (link)](https://putty.org/) +* [Syncing a fork (link)](https://help.github.com/articles/syncing-a-fork/) +* [Your First Pull Request (link)](https://joshuahunter.com/posts/your-first-pull-request/)