Difference between revisions of "Git for dummies"
(reverting changes) |
(the index) |
||
Line 54: | Line 54: | ||
git push | git push | ||
+ | ==Complicated stuff== | ||
+ | |||
+ | ===The index=== | ||
+ | |||
+ | So, with git you have multiple places where changes are "kept": | ||
+ | * remote repository | ||
+ | * local repository | ||
+ | * the index | ||
+ | * your working copy | ||
+ | |||
+ | The index is where you "stage" changes you are about to commit. git-add takes changes from your working copy and updates the index to match (this was called git-update-index in previous versions of git). | ||
+ | |||
+ | After you edit the file (in your working copy), there are a few steps to get it to the remote repository. | ||
+ | |||
+ | From working copy to index: | ||
+ | |||
+ | git add file | ||
+ | |||
+ | From index to local repository: | ||
+ | |||
+ | git commit | ||
+ | |||
+ | From local repository to remote repository: | ||
+ | |||
+ | git push | ||
+ | |||
+ | ==Other junk== | ||
[http://git.or.cz/course/svn.html Git - SVN Crash Course] | [http://git.or.cz/course/svn.html Git - SVN Crash Course] | ||
[[Category: Coders]] | [[Category: Coders]] |
Revision as of 20:35, 15 November 2008
The basics
Setup
Set up your system:
sudo apt-get install git-core git config --global user.email somebody@somewhere.tld git config --global user.name "John Doe"
Note that if you are using debian etch, you will need to get a backport of git from backports.org.
Getting the repo
Get a copy of the library project (assuming the central repository is on a server named dev.freegeek.org):
git clone dev.freegeek.org:/git/library cd library/
Sort of like svn update:
git pull
Like svn update (but if you have local commits):
git fetch git rebase origin/master
(Master is like trunk is in svn.)
Making changes
Now edit a file
vi TODO
(See it's just like svn!!)
Now schedule this modification to be committed locally:
git add TODO
Want to see changes that you hain't yet git added?
git diff
Want to see what you are about to commit?
git diff --cached
Now commit it locally:
git commit
Now, if you want to commit all of the changes you've made, but don't want to "git add" a million files, you can shorted it to this:
git commit -a
The -a tells git to commit "all"
If you screw up changes to a file, and just want to put it back:
git checkout myfile
think of checkout (when used like this) as the git equivalent of "svn revert".
Now send your locally committed changes to the main repository:
git push
Complicated stuff
The index
So, with git you have multiple places where changes are "kept":
- remote repository
- local repository
- the index
- your working copy
The index is where you "stage" changes you are about to commit. git-add takes changes from your working copy and updates the index to match (this was called git-update-index in previous versions of git).
After you edit the file (in your working copy), there are a few steps to get it to the remote repository.
From working copy to index:
git add file
From index to local repository:
git commit
From local repository to remote repository:
git push