Git: removed some clutter

This commit is contained in:
Ayush 2015-10-06 00:44:05 +05:30
parent e57fb68756
commit 6611db502a

View File

@ -18,7 +18,7 @@ manage your source code.
### What is version control?
Version control is a system that records changes to a file, or set of files, over time.
Version control is a system that records changes to a file(s), over time.
### Centralized Versioning VS Distributed Versioning
@ -42,8 +42,9 @@ Version control is a system that records changes to a file, or set of files, ove
### Repository
A set of files, directories, historical records, commits, and heads. Imagine it as a source code data structure,
with the attribute that each source code "element" gives you access to its revision history, among other things.
A set of files, directories, historical records, commits, and heads. Imagine it
as a source code data structure, 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.
@ -54,32 +55,33 @@ The .git directory contains all the configurations, logs, branches, HEAD, and mo
### Working Tree (component of repository)
This is basically the directories and files in your repository. It is often referred to
as your working directory.
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 a layer that separates your working tree
from the Git repository. This gives developers more power over what gets sent to the Git
repository.
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 repositories, or not!
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 repositories, 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.
A branch is essentially a pointer to the last commit you made. As you go on
committing, this pointer will automatically update to ooint 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.
###Stages of Git
### Stages of Git
* Modified - Changes have been made to a file but file has not been committed to Git Database yet
* Staged - Marks a modified file to go into your next commit snapshot
* Committed - Files have been committed to the Git Database
@ -144,8 +146,8 @@ $ git init --help
### status
To show differences between the index file (basically your working copy/repo) and the current
HEAD commit.
To show differences between the index file (basically your working copy/repo)
and the current HEAD commit.
```bash
@ -172,7 +174,8 @@ $ git add /path/to/file/HelloWorld.c
$ git add ./*.java
```
This only adds a file to the staging area/index, it doesn't commit it to the working directory/repo.
This only adds a file to the staging area/index, it doesn't commit it to the
working directory/repo.
### branch
@ -205,7 +208,8 @@ Updates all files in the working tree to match the version in the index, or spec
$ git checkout
# Checkout a specified branch
$ git checkout branchName
# Create a new branch & switch to it, like: "git branch <name>; git checkout <name>"
# Create a new branch & switch to it
# equivalent to "git branch <name>; git checkout <name>"
$ git checkout -b newBranch
```
@ -352,11 +356,13 @@ $ git push
### stash
Stashing takes the dirty state of your working directory and saves it on a stack of unfinished changes that you can reapply at any time.
Stashing takes the dirty state of your working directory and saves it on a stack
of unfinished changes that you can reapply at any time.
Let's say you've been doing some work in your git repo, but you want to pull from the remote.
Since you have dirty (uncommited) changes to some files, you are not able to run `git pull`.
Instead, you can run `git stash` to save your changes onto a stack!
Let's say you've been doing some work in your git repo, but you want to pull
from the remote. Since you have dirty (uncommited) changes to some files, you
are not able to run `git pull`. Instead, you can run `git stash` to save your
changes onto a stack!
```bash
$ git stash