Difference between revisions of "EBC Exercise 16 git"
m (moved EBC Exercise 07c git to EBC Exercise 16 git) |
|||
(7 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
== 0. Set Up Git == | == 0. Set Up Git == | ||
− | + | If you haven't done so already, go to [[EBC_Exercise_05_Getting_Exercise_Support_Materials#Set_Up_Git]] and follow the directions for installing and setting up git. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 1. Play with git locally == | == 1. Play with git locally == | ||
Line 54: | Line 40: | ||
</pre> | </pre> | ||
− | There is lots of good material here. I suggest you work through it all. Section 2.1 shows how to clone a remote | + | There is lots of good material here. I suggest you work through it all. Section 2.1 shows how to clone a remote repository. |
− | + | ||
− | |||
− | |||
'''gitk''' looks like a nice tool. Be sure to take a look at it. | '''gitk''' looks like a nice tool. Be sure to take a look at it. | ||
Line 93: | Line 77: | ||
* Edit <code>helloWorld.c</code> and add a <code>printf</code> with your name on it. | * Edit <code>helloWorld.c</code> and add a <code>printf</code> with your name on it. | ||
+ | * Compile to be sure it works. | ||
* stage and commit <code>helloWorld.c</code>. You may have to merge. Keep everyone else's name in the file. | * stage and commit <code>helloWorld.c</code>. You may have to merge. Keep everyone else's name in the file. | ||
* Push it to the repository. | * Push it to the repository. | ||
Line 101: | Line 86: | ||
[http://yehudakatz.com/2010/05/13/common-git-workflows/ Here's] a nice article on a common git workflow for those who are moving from svn. | [http://yehudakatz.com/2010/05/13/common-git-workflows/ Here's] a nice article on a common git workflow for those who are moving from svn. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{YoderFoot}} | {{YoderFoot}} |
Revision as of 08:47, 3 June 2013
Embedded Linux Class by Mark A. Yoder
git is a distributed revision control system with an emphasis on being fast. It was initially designed and developed by Linus Torvalds for Linux kernel development. The purpose of this lab is to get hands on experience with git to learn how it works and how to use it.
Much of the material here has come from Pro Git. We'll be using github to practice gitting.
Contents
0. Set Up Git
If you haven't done so already, go to EBC_Exercise_05_Getting_Exercise_Support_Materials#Set_Up_Git and follow the directions for installing and setting up git.
1. Play with git locally
Pro Git has a nice on-line book with lots of good details. I'll lead you through many parts of it. The first chapter is Getting Started. Here are the topics:
1.1 - About Version Control 1.2 - A Short History of Git 1.3 - Git Basics 1.4 - Installing Git 1.5 - First-Time Git Setup 1.6 - Getting Help 1.7 - Summary
I'll cover Git Basics in class and you have already done parts 1.5 and 1.6 to set up for github. I suggest you take a look at Getting Help and then move on.
2. Git Basics
Chapter is on Git Basics. The topics are:
2.1 - Getting a Git Repository 2.2 - Recording Changes to the Repository 2.3 - Viewing the Commit History 2.4 - Undoing Things 2.5 - Working with Remotes 2.6 - Tagging 2.7 - Tips and Tricks 2.8 - Summary
There is lots of good material here. I suggest you work through it all. Section 2.1 shows how to clone a remote repository.
gitk looks like a nice tool. Be sure to take a look at it.
Questions you should be able to answer after doing chapter 2
- How do you stage a file?
- How do you view staged and unstaged changes?
- How do you view comment history?
- You've just committed something and realize you meant to have committed one more file. How do you add that file to the commit you just did?
- How do you unstage a file?
- How do you unmodify a file?
- After running the
remote -v
how do you tell if a site is read only or read/write? - What's the difference between a lightweight and an annotated tag?
3. Git Branching
Chapter 3 is on branching. Here's the topics from the book:
3.1 - What a Branch Is 3.2 - Basic Branching and Merging 3.3 - Branch Management 3.4 - Branching Workflows 3.5 - Remote Branches 3.6 - Rebasing 3.7 - Summary
I'll work through 3.1 in class. Read through 3.2 and then do the following exercise.
Merging helloWorld.c
- clone my repository (The pass phrase is Hiapp)
beagle$ git clone git@github.com:MarkAYoder/gitLearn.git beagle$ cd gitLearn
- Edit
helloWorld.c
and add aprintf
with your name on it. - Compile to be sure it works.
- stage and commit
helloWorld.c
. You may have to merge. Keep everyone else's name in the file. - Push it to the repository.
Once everyone has done this we should have a file with everyone's name in it.
Moving from svn
Here's a nice article on a common git workflow for those who are moving from svn.
Embedded Linux Class by Mark A. Yoder