Practice with basic git functions, and intro to study of Data Structures
Version Control with Git, 2nd Ed. Loeliger and McCullough.
http://proquest.safaribooksonline.com/book/databases/content-management-systems/9781449345037/version-control-with-git/id302681?uicode=ohlink (Free access through www.lib.miamioh.edu, but limited to 100 simultaneous users across all OhioLink. I recommend downloading/printing the required readings ahead of time, just in case.)
Read only the following:
- Chapter 1
- Background
- The Birth of Git
- Chapter 3: Getting Started
- Intro
- The Git Command Line
- Quick Introduction to Using Git (read all sections)
- Configuration files (Intro only, may skip part on aliases)
- Chapter 4: Basic Git Concepts
- Basic concepts (read all)
- Object store pictures
- Git concepts at work (read all)
- Chapter 21: Git and Github
- Repo for Public Code
- Creating a GitHub Repository
- Forks
- Creating Pull Requests
- Managing Pull Requests
- Coding Models
Open Data Structures in C++. Morin.
http://opendatastructures.org/ (Free access. I recommend downloading the PDF version.)
Read the following:
- Chapter 1 (pp. 1-20)
- Create an account with github.com. You may select the free account. If you want to get some free private repos, you may apply at https://github.com/edu
- Go to https://github.com/MiamiOH-CSE274/01_Git_and_Intro and fork the repo, which will create a copy of it in your github account.
- Install git on your computer, if you do not already have it. I recommend installing http://windows.github.com/ if you use windows, or http://mac.github.com/ if you use Mac. HOWEVER, I highly recommend using the command-line tools for everything, and ignoring the GUI. I will not be providing help with configuring/using the GUI.
- Clone your repo from github to your computer. When you are at the web page for your repo,
https://github.com/[your github id]/01_Git_and_Intro
, you will see info about how to clone it. The easiest way is to go to the command line terminal, and typegit clone git@github.com:[your github id]/01_Git_and_Intro.git
- Checkout your personal branch from the repo. Each student has a branch labeled by their Miami uniqueid.
git checkout uniqueid
... for example, I would dogit checkout brinkmwj
- Complete the exercises below by modifying this file.
- After you complete each answer, be sure to create a new commit with the changes (using
git add README.md
andgit commit -m
as appropriate). Also, be sure to upload to github frequently by usinggit push
- If I don't see at least 4-5 commits on this homework, I'm going to be unhappy.
- Once complete, send me a pull request. You should send from your branch in your github repo, to your branch in the MiamiOH-CSE274 repo. This is your official "turn in" of the homework, which I will grade.
- Double check that you did the right thing by going to https://github.com/MiamiOH-CSE274/01_Git_and_Intro/pulls and making sure that your pull request is there, and looks like you expect. Optimism is the root of all evil.
1. Based on the reading in the Git book, is it okay to keep your local copy of your repo on a USB drive and just carry it around? Explain why or why not. What about keeping it on the M: drive?
It's okay to make copies of your work and back it up also using your USB drive or M drive, but it's not okay to use them as your master for your work. It's important to use redundancy when backing up your master, and using GitHub to keep copies of all your repos online where you can access them anywhere.
2. Imagine that you come into the lab on the weekend to work on homework with friends, but you forgot to bring your USB drive with your repo on it. What should you do?
Clone your up-to-date repo from GitHub using git, check it out, work on it, then push your updates while you work to GitHub.
[Your answer here]
Note: You should not need to write any real computer code for any of these. Instead, explain how you would approach the problem using a combination of English and pseudocode. The goal is to write something that is understandable by any programmer, even if the two of you have never used the same computer language. (In other words, assume the other person does not know the syntax of Java or C/C++, but knows the basic programming constructs such as for loops, if statements, variables, and so on.)
[Your answer here]
- blob - TODO
- tree - TODO
- commit - TODO
- repo - TODO
- hash - TODO