{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Homework 1.4: Using Git/GitHub to submit this homework (15 pts)\n", "\n", "This may be your first time using Git/GitHub. [Git](https://git-scm.com) is a version control system that allows for collaborative work. [GitHub](http://github.com/) is a website that can host Git repositories. We will be using Git/GitHub exclusively for submitting homework and tutorial exercises. We do this for two main reasons. First, this allows for much easier tracking, submission, and grading of homework. Second, and most importantly, you should be using version control when working with real data. It is good practice both for the security of your own work and for reproducibility of your research.\n", "\n", "Prior to submitting this homework, you formed a team of three (and possibly four) people. This team has a repository containing your work for this class that is hosted at GitHub. For example, if you are team number 6, your repository is hosted at `https://github.com/bebi103/06-bebi103a-2020`. The rest of this problem is written as if you are team 6, but you can make obvious substitutions for your team.\n", "\n", "**a)** Clone your repository to your machine. I like to keep my repositories in the directory `~/git`, but the location on your machine is your choice. To clone into that directory, I would do the following on my machine on the command line. (You can get a command prompt by launching a Terminal using the JupyterLab launcher.)\n", "\n", " cd ~/git\n", " git clone https://github.com/bebi103/06-bebi103a-2020.git\n", " \n", "**b)** Upon cloning the repository, you will have a new directory, `~/git/06-bebi103a-2020` containing your team's repository. Within that directory, you will see three subdirectories, `homework/`, `tutorial_exercises/`, and `sandbox/`. The `homework/` and `tutorial_exercises/` directories are for submitting homework and tutorial exercises. The `sandbox/` directory is for messing around with various ideas that are not for serious submission.\n", "\n", "You will need to create a directory on your local machine within the repository called `data/`. For my machine, I would do\n", "\n", " mkdir ~/git/06-bebi103a-2020/data\n", "\n", "This directory is *not* under version control, and anything you put in there will *not* be uploaded to GitHub. This is because we do not want to have large data files under version control. Git will automatically ignore the contents of this directory because it is included in the `.gitignore` file of the repository.\n", "\n", "Though you do not need any data for this homework submission, when you do download data sets for use in your homeworks, they go in the `data/` directory.\n", "\n", "**c)** You will place the solution to this homework problem in the file `homework/hw1.4.ipynb`. One of your team members should create this file. After it is created and saved, he or she can add it, commit, and push.\n", "\n", " cd ~/git/06-bebi103a-2020/homework\n", " git add hw1.4.ipynb\n", " git commit -m \"Initial commit of homework 1.4.\"\n", " git push origin master\n", " \n", "**d)** Now, the other members of your team should pull the updates.\n", "\n", " git pull\n", " \n", "Each team member should, in turn on their own machine, write a haiku about data analysis in a Markdown cell, save the notebook, add it, commit, and push. (Don't put too much time or thought into the haiku; it's just for fun to add some text.) Something like this:\n", "\n", " cd ~/git/06-bebi103a-2020/homework\n", " git add hw1.4.ipynb\n", " git commit -m \"Justin added his haiku. It's undoubtedly bad.\"\n", " git push origin master\n", " \n", "As you are working through your notebooks, it is wise to commit and push often. Before you start working, you should also pull to get your teammates' changes. To avoid conflicts, you may want to edit notebooks separately and then copy and paste them into the notebooks you will submit at the end. These other notebooks should be in the `sandbox/` directory to keep your `homework/` directory clean. More experienced Git users can use branches and merges instead.\n", "\n", "**e)** After you have completed the other problems in files `homework/hw1.1.ipynb`, `homework/hw1.2.ipynb`, and `homework/hw1.3.ipynb`, along with your haikus in `homework/hw1.4.ipynb`, it is time to submit the homework. To do this, commit and push your final submission. Something like this.\n", "\n", " cd ~/git/06-bebi103a-2020/homework\n", " git add hw1.*.ipynb\n", " git commit -m \"Final commit for homework submission.\"\n", " git push origin master\n", "\n", "Then, follow the instructions [here](https://help.github.com/articles/creating-releases/) to tag this commit as the homework submission. When you type the version number of your release, use `hw01_submission`. You do not need to include any binaries or select anything about pre-releases." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }