summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--git.html.markdown752
-rw-r--r--java.html.markdown2
-rw-r--r--racket.html.markdown2
3 files changed, 347 insertions, 409 deletions
diff --git a/git.html.markdown b/git.html.markdown
index 184ec14b..c10559c7 100644
--- a/git.html.markdown
+++ b/git.html.markdown
@@ -1,8 +1,8 @@
---
-
-language: git
+category: tool
+tool: git
contributors:
- - ["Jake Prather", "http://github.com/JakeHP"]
+ - ["Jake Prather", "http:#github.com/JakeHP"]
filename: LearnGit.txt
---
@@ -16,419 +16,357 @@ manage your source code.
In layman's terms, it's a way of managing, and keeping a detailed historical record,
of your source code.
+## Versioning Concepts
+
+### What is version control?
+
+Version control is a system that records changes to a file, or set of files, over time.
+
+### Centralized Versioning VS Distributed Versioning
+
+* Centralized version control focuses on synchronizing, tracking, and backing up files.
+* Distributed version control focuses on sharing changes. Every change has a unique id.
+* Distributed systems have no defined structure. You could easily have a SVN style, centralized system, with git.
+
+[Additional Information](http:#git-scm.com/book/en/Getting-Started-About-Version-Control)
+
+### Why Use Git?
+
+* Can work offline.
+* Collaborating with others is easy!
+* Branching is easy!
+* Merging is easy!
+* Git is fast.
+* Git is flexible.
+
+## Git Architecture
+
+
+### Repository
+
+A set of files, directories, historical records, commits, and heads. Imagine it as a source code datastructure,
+with the attribute that each source code "element" gives you access to its revision history, among other things.
+
+A git repository is comprised of the .git directory & working tree.
+
+### .git Directory (component of repository)
+
+The .git directory contains all the configurations, logs, branches, HEAD, and more.
+[Detailed List.](http:#gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html)
+
+### Working Tree (component of repository)
+
+This is basically the directories and files in your repository. It is often referred to
+as your working directory.
+
+### Index (component of .git dir)
+
+The Index is the staging area in git. It's basically layer that separates your working tree
+from the Git repository. This gives developers more power over what gets sent to the Git
+repository.
+
+### Commit
+
+A git commit is a snapshot of a set of changes, or manipulations to your Working Tree.
+For example, if you added 5 files, and removed 2 others, these changes will be contained
+in a commit (or snapshot). This commit, can then be pushed to other repositorys, or not!
+
+### Branch
+
+A branch is essentially a pointer, that points to the last commit you made. As you commit
+this pointer will automatically update and point to the latest commit.
+
+### HEAD and head (component of .git dir)
+
+HEAD, is a pointer, that points to the current branch. A repository only has 1 *active* HEAD.
+head, is a pointer, that points to any commit. A repository can have any number of heads.
+
+### Conceptual Resources
+
+[Git For Computer Scientists](http:#eagain.net/articles/git-for-computer-scientists/)
+[Git For Designers](http:#hoth.entp.com/output/git_for_designers.html)
+
+
+## Commands
+
+
+### init
+
+Create an empty Git repository. The Git repository's settings, stored information,
+and more is stored in a directory, or folder named, ".git".
+
+```bash
+$ git init
+```
+
+### config
+
+To configure settings. Whether it be for the repository, the system itself, or global
+configurations.
+
+
+```bash
+# Print & Set Some Basic Config Variables (Global)
+$ git config --global user.email
+$ git config --global user.name
+
+$ git config --global user.email "MyEmail@Zoho.com"
+$ git config --global user.name "My Name"
+```
+
+[Learn More About git config.](http:#git-scm.com/docs/git-config)
+
+### help
+
+To give you quick access to an extremeled detailed guide of each command. Or to
+just give you a quick reminder of some semantics.
+
+```bash
+# Quickly check available commands
+$ git help
+
+# Check all available commands
+$ git help -a
+
+# Command specific help - user manual
+# git help <command_here>
+$ git help add
+$ git help commit
+$ git help init
+```
+
+### status
+
+To show differences between the index file (basically your working copy/repo) and the current
+HEAD commit.
+
+
+```bash
+# Will display the branch, untracked files, changes and other differences
+$ git status
+
+# To learn other "tid bits" about git status
+$ git help status
+```
+
+### add
+
+To add files to the current working tree/directory/repo. If you do not git add new files to the
+working tree/directory they will not be included in commits!
+
+```bash
+# add a file in your current working directory
+$ git add HelloWorld.java
+
+# add a file in a nested dir
+$ git add /path/to/file/HelloWorld.c
+
+# Regular Expression support!
+$ git add ./*.java
+```
+
+### branch
+
+Manage your branches. You can view, edit, create, delete branches using this command.
+
+```bash
+# list existing branches & remotes
+$ git branch -a
+
+# create a new branch
+$ git branch myNewBranch
+
+# delete a branch
+$ git branch -d myBranch
+
+# rename a branch
+# git branch -m <oldname> <newname>
+$ git branch -m myBranchName myNewBranchName
+
+# edit a branch's description
+$ git branch myBranchName --edit-description
+```
+
+### checkout
+
+Updates all files in the working tree to match the version in the index, or specified tree.
+
+```bash
+# Checkout a repo - defaults to master branch
+$ git checkout
+# Checkout a specified branch
+$ git checkout -b branchName
+```
+
+### clone
+
+Clones, or copys, an existing repository into a new directory. It almost adds
+remote-tracking branches for each branch in the cloned repo. (which allows you to push
+to a remote branch)
+
+```bash
+# Clone learnxinyminutes-docs
+$ git clone https:#github.com/adambard/learnxinyminutes-docs.git
+```
+
+### commit
+
+Stores the current contents of the index in a new "commit". This commit contains
+the changes made and a message created by the user.
+
+```bash
+# commit with a message
+$ git commit -m "Added multiplyNumbers() function to HelloWorld.c"
+```
+
+### grep
+
+Allows you to quickly search a repository.
+
+Optional Configurations:
+
+```bash
+# Thanks to Travis Jeffery for these
+# Set line numbers to be shown in grep search results
+$ git config --global grep.lineNumber true
+
+# Make search results more readable, including grouping
+$ git config --global alias.g "grep --break --heading --line-number"
+```
+
+```bash
+# Search for "variableName" in all java files
+$ git grep 'variableName' -- '*.java'
+
+# Search for a line that contains "arrayListName" and, "add" or "remove"
+$ git grep -e 'arrayListName' --and \( -e add -e remove \)
```
-///////////////////////////////////////
-// Versioning Concepts
-///////////////////////////////////////
-
- ///////////////////////////////////////
- // What is version control?
- ///////////////////////////////////////
-
- Version control is a system that records changes to a file, or set of files, over time.
-
- ///////////////////////////////////////
- // Centralized Versioning VS Distributed Versioning
- ///////////////////////////////////////
-
- * Centralized version control focuses on synchronizing, tracking, and backing up files.
- * Distributed version control focuses on sharing changes. Every change has a unique id.
- * Distributed systems have no defined structure. You could easily have a SVN style, centralized system, with git.
-
- [Additional Information](http://git-scm.com/book/en/Getting-Started-About-Version-Control)
-
- ///////////////////////////////////////
- // Why Use Git?
- ///////////////////////////////////////
-
- * Can work offline.
- * Collaborating with others is easy!
- * Branching is easy!
- * Merging is easy!
- * Git is fast.
- * Git is flexible.
-
-///////////////////////////////////////
-// Git Architecture
-///////////////////////////////////////
-
- ///////////////////////////////////////
- // Repository
- ///////////////////////////////////////
-
- A set of files, directories, historical records, commits, and heads. Imagine it as a source code datastructure,
- with the attribute that each source code "element" gives you access to its revision history, among other things.
-
- A git repository is comprised of the .git directory & working tree.
-
- ///////////////////////////////////////
- // .git Directory (component of repository)
- ///////////////////////////////////////
-
- The .git directory contains all the configurations, logs, branches, HEAD, and more.
- [Detailed List.](http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html)
-
- ///////////////////////////////////////
- // Working Tree (component of repository)
- ///////////////////////////////////////
-
- This is basically the directories and files in your repository. It is often referred to
- as your working directory.
-
- ///////////////////////////////////////
- // Index (component of .git dir)
- ///////////////////////////////////////
-
- The Index is the staging area in git. It's basically layer that separates your working tree
- from the Git repository. This gives developers more power over what gets sent to the Git
- repository.
-
- ///////////////////////////////////////
- // Commit
- ///////////////////////////////////////
-
- A git commit is a snapshot of a set of changes, or manipulations to your Working Tree.
- For example, if you added 5 files, and removed 2 others, these changes will be contained
- in a commit (or snapshot). This commit, can then be pushed to other repositorys, or not!
-
- ///////////////////////////////////////
- // Branch
- ///////////////////////////////////////
-
- A branch is essentially a pointer, that points to the last commit you made. As you commit
- this pointer will automatically update and point to the latest commit.
-
- ///////////////////////////////////////
- // HEAD and head (component of .git dir)
- ///////////////////////////////////////
-
- HEAD, is a pointer, that points to the current branch. A repository only has 1 *active* HEAD.
- head, is a pointer, that points to any commit. A repository can have any number of heads.
-
- ///////////////////////////////////////
- // Conceptual Resources
- ///////////////////////////////////////
-
- [Git For Computer Scientists](http://eagain.net/articles/git-for-computer-scientists/)
- [Git For Designers](http://hoth.entp.com/output/git_for_designers.html)
-
-
-///////////////////////////////////////
-// Commands
-///////////////////////////////////////
-
- ///////////////////////////////////////
- // init
- ///////////////////////////////////////
-
- Purpose:
- To create an empty Git repository. The Git repository's settings, stored information,
- and more is stored in a directory, or folder named, ".git".
-
- Examples:
- $ git init
-
- ///////////////////////////////////////
- // config
- ///////////////////////////////////////
-
- Purpose:
- To configure settings. Whether it be for the repository, the system itself, or global
- configurations.
-
- Examples:
-
- // Print & Set Some Basic Config Variables (Global)
- $ git config --global user.email
- $ git config --global user.name
-
- $ git config --global user.email "MyEmail@Zoho.com"
- $ git config --global user.name "My Name"
-
- [Learn More About git config.](http://git-scm.com/docs/git-config)
-
- ///////////////////////////////////////
- // help
- ///////////////////////////////////////
-
- Purpose:
- To give you quick access to an extremeled detailed guide of each command. Or to
- just give you a quick reminder of some semantics.
-
- Examples:
- // Quickly check available commands
- $ git help
-
- // Check all available commands
- $ git help -a
-
- // Command specific help - user manual
- // git help <command_here>
- $ git help add
- $ git help commit
- $ git help init
-
- ///////////////////////////////////////
- // status
- ///////////////////////////////////////
-
- Purpose:
- To show differences between the index file (basically your working copy/repo) and the current
- HEAD commit.
-
- Examples:
- // Will display the branch, untracked files, changes and other differences
- $ git status
-
- // To learn other "tid bits" about git status
- $ git help status
-
- ///////////////////////////////////////
- // add
- ///////////////////////////////////////
-
- Purpose:
- To add files to the current working tree/directory/repo. If you do not git add files to the
- working tree/directory they will not be included in commits!
-
- Exmaples:
- // add a file in your current working directory
- $ git add HelloWorld.java
-
- // add a file in a nested dir
- $ git add /path/to/file/HelloWorld.c
-
- // Regular Expression support!
- $ git add ./*.java
-
- ///////////////////////////////////////
- // branch
- ///////////////////////////////////////
-
- Purpose:
- Manage your branches. You can view, edit, create, delete branches using this command.
-
- Examples:
- // list existing branches & remotes
- $ git branch -a
+Google is your friend for more examples
+[Git Grep Ninja](http:#travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja)
+
+### log
+
+Display commits to the repository.
+
+```bash
+# Show all commits
+$ git log
+
+# Show X number of commits
+$ git log -n 10
+
+# Show merge commits only
+$ git log --merges
+```
+
+### merge
+
+"Merge" in changes, from external commits, into the current branch.
+
+```bash
+# Merge the specified branch into the current.
+$ git merge branchName
+
+# Always generate a merge commit when merging
+$ git merge --no-ff branchName
+```
+
+### mv
+
+Rename or move a file
+
+```bash
+# Renaming a file
+$ git mv HelloWorld.c HelloNewWorld.c
+
+# Moving a file
+$ git mv HelloWorld.c ./new/path/HelloWorld.c
+
+# Force rename or move
+# "existingFile" already exists in the directory, will be overwritten
+$ git mv -f myFile existingFile
+```
+
+### pull
+
+Pulls from a repository and merges it with another branch.
+
+```bash
+# Update your local repo, by merging in new changes
+# from the remote "origin" and "master" branch.
+# git pull <remote> <branch>
+$ git pull origin master
+```
+
+### push
+
+Push, and merge changes from a branch to a remote & branch.
+
+```bash
+# Push, and merge changes from a local repo to a
+# remote named "origin" and "master" branch.
+# git push <remote> <branch>
+# git push => implicitly defaults to => git push origin master
+$ git push origin master
+```
+
+### rebase (caution)
+
+Take all changes that were committed on one branch, and replay them onto another branch.
+*Do not rebase commits that you have pushed to a public repo*
+
+```bash
+# Rebase experimentBranch onto master
+# git rebase <basebranch> <topicbranch>
+$ git rebase master oldTest
+```
+
+[Additional Reading.](http:#git-scm.com/book/en/Git-Branching-Rebasing)
+
+### reset (caution)
+
+Reset the current HEAD to the specified state. This allows you to undo merges,
+pulls, commits, adds, and more. It's a great command but also dangerous if you don't
+know what you are doing.
+
+```bash
+# Reset the staging area, to match the latest commit (leaves dir unchanged)
+$ git reset
+
+# Reset the staging area, to match the latest commit, and overwrite working dir
+$ git reset --hard
+
+# Moves the current branch tip to the specified commit (leaves dir unchanged)
+# all changes still exist in the directory.
+$ git reset 31f2bb1
+
+# Moves the current branch tip backward to the specified commit
+# and makes the working dir match (deletes uncommited changes and all commits
+# after the specified commit).
+$ git reset --hard 31f2bb1
+```
+
+### rm
+
+The opposite of git add, git rm removes files from the current working tree.
- // create a new branch
- $ git branch myNewBranch
-
- // delete a branch
- $ git branch -d myBranch
-
- // rename a branch
- // git branch -m <oldname> <newname>
- $ git branch -m myBranchName myNewBranchName
-
- // edit a branch's description
- $ git branch myBranchName --edit-description
-
- ///////////////////////////////////////
- // checkout
- ///////////////////////////////////////
-
- Purpose:
- Updates all files in the working tree to match the version in the index, or specified tree.
-
- Examples:
- // Checkout a repo - defaults to master branch
- $ git checkout
- // Checkout a specified branch
- $ git checkout -b branchName
-
- ///////////////////////////////////////
- // clone
- ///////////////////////////////////////
-
- Purpose:
- Clones, or copys, an existing repository into a new directory. It almost adds
- remote-tracking branches for each branch in the cloned repo. (which allows you to push
- to a remote branch)
-
- Examples:
- // Clone learnxinyminutes-docs
- $ git clone https://github.com/adambard/learnxinyminutes-docs.git
-
- ///////////////////////////////////////
- // commit
- ///////////////////////////////////////
-
- Purpose:
- Stores the current contents of the index in a new "commit". This commit contains
- the changes made and a message created by the user.
-
- Examples:
- // commit with a message
- $ git commit -m "Added multiplyNumbers() function to HelloWorld.c"
-
- ///////////////////////////////////////
- // grep
- ///////////////////////////////////////
-
- Purpose:
- Allows you to quickly search a repository.
-
- Optional Configurations:
- // Thanks to Travis Jeffery for these
- // Set line numbers to be shown in grep search results
- $ git config --global grep.lineNumber true
-
- // Make search results more readable, including grouping
- $ git config --global alias.g "grep --break --heading --line-number"
-
- Examples:
- // Search for "variableName" in all java files
- $ git grep 'variableName' -- '*.java'
-
- // Search for a line that contains "arrayListName" and, "add" or "remove"
- $ git grep -e 'arrayListName' --and \( -e add -e remove \)
-
- Google is your friend for more examples
- [Git Grep Ninja](http://travisjeffery.com/b/2012/02/search-a-git-repo-like-a-ninja)
-
- ///////////////////////////////////////
- // log
- ///////////////////////////////////////
-
- Purpose:
- Display commits to the repository.
-
- Examples:
- // Show all commits
- $ git log
-
- // Show X number of commits
- $ git log -n 10
-
- // Show merge commits only
- $ git log --merges
-
- ///////////////////////////////////////
- // merge
- ///////////////////////////////////////
-
- Purpose:
- "Merge" in changes, from external commits, into the current branch.
-
- Examples:
- // Merge the specified branch into the current.
- $ git merge branchName
-
- // Always generate a merge commit when merging
- $ git merge --no-ff branchName
-
- ///////////////////////////////////////
- // mv
- ///////////////////////////////////////
-
- Purpose:
- Rename or move a file
-
- Examples:
- // Renaming a file
- $ git mv HelloWorld.c HelloNewWorld.c
-
- // Moving a file
- $ git mv HelloWorld.c ./new/path/HelloWorld.c
-
- // Force rename or move
- // "existingFile" already exists in the directory, will be overwritten
- $ git mv -f myFile existingFile
-
- ///////////////////////////////////////
- // pull
- ///////////////////////////////////////
-
- Purpose:
- Pulls from a repository and merges it with another branch.
-
- Examples:
- // Update your local repo, by merging in new changes
- // from the remote "origin" and "master" branch.
- // git pull <remote> <branch>
- $ git pull origin master
-
- ///////////////////////////////////////
- // push
- ///////////////////////////////////////
-
- Purpose:
- Push, and merge changes from a branch to a remote & branch.
-
- Examples:
- // Push, and merge changes from a local repo to a
- // remote named "origin" and "master" branch.
- // git push <remote> <branch>
- // git push => implicitly defaults to => git push origin master
- $ git push origin master
-
- ///////////////////////////////////////
- // rebase (caution)
- ///////////////////////////////////////
-
- Purpose:
- Take all changes that were committed on one branch, and replay them onto another branch.
- *Do not rebase commits that you have pushed to a public repo*
-
- Examples:
- // Rebase experimentBranch onto master
- // git rebase <basebranch> <topicbranch>
- $ git rebase master oldTest
-
- [Additional Reading.](http://git-scm.com/book/en/Git-Branching-Rebasing)
-
- ///////////////////////////////////////
- // reset (caution)
- ///////////////////////////////////////
-
- Purpose:
- Reset the current HEAD to the specified state. This allows you to undo merges,
- pulls, commits, adds, and more. It's a great command but also dangerous if you don't
- know what you are doing.
-
- Examples:
- // Reset the staging area, to match the latest commit (leaves dir unchanged)
- $ git reset
-
- // Reset the staging area, to match the latest commit, and overwrite working dir
- $ git reset --hard
-
- // Moves the current branch tip to the specified commit (leaves dir unchanged)
- // all changes still exist in the directory.
- $ git reset 31f2bb1
-
- // Moves the current branch tip backward to the specified commit
- // and makes the working dir match (deletes uncommited changes and all commits
- // after the specified commit).
- $ git reset --hard 31f2bb1
-
- ///////////////////////////////////////
- // rm
- ///////////////////////////////////////
-
- Purpose:
- The opposite of git add, git rm removes files from the current working tree.
-
- Example:
- // remove HelloWorld.c
- $ git rm HelloWorld.c
-
- // Remove a file from a nested dir
- $ git rm /pather/to/the/file/HelloWorld.c
+```bash
+# remove HelloWorld.c
+$ git rm HelloWorld.c
+# Remove a file from a nested dir
+$ git rm /pather/to/the/file/HelloWorld.c
```
## Further Information
-* [tryGit - A fun interactive way to learn Git.](http://try.github.io/levels/1/challenges/1)
+* [tryGit - A fun interactive way to learn Git.](http:#try.github.io/levels/1/challenges/1)
-* [git-scm - Video Tutorials](http://git-scm.com/videos)
+* [git-scm - Video Tutorials](http:#git-scm.com/videos)
-* [git-scm - Documentation](http://git-scm.com/docs)
+* [git-scm - Documentation](http:#git-scm.com/docs)
-* [Atlassian Git - Tutorials & Workflows](https://www.atlassian.com/git/)
+* [Atlassian Git - Tutorials & Workflows](https:#www.atlassian.com/git/)
-* [SalesForce Cheat Sheet](https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf)
+* [SalesForce Cheat Sheet](https:#na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf)
diff --git a/java.html.markdown b/java.html.markdown
index a6026651..b4531635 100644
--- a/java.html.markdown
+++ b/java.html.markdown
@@ -343,7 +343,7 @@ class Bicycle {
speed -= decrement;
}
- public void setName(int newName) {
+ public void setName(String newName) {
name = newName;
}
diff --git a/racket.html.markdown b/racket.html.markdown
index 9a86ffad..b6c1f86b 100644
--- a/racket.html.markdown
+++ b/racket.html.markdown
@@ -12,7 +12,7 @@ Racket is a general purpose, multi-paradigm programming language in the Lisp/Sch
Feedback is appreciated! You can reach me at [@th3rac25](http://twitter.com/th3rac25) or th3rac25 [at] [google's email service]
-```scheme
+```racket
#lang racket ; defines the language we are using
;;; Comments