Git thinks of its data more like a set of snapshots of a mini filesystem.
24b9da6552252987aa493b52f8696cd6d3b00373
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global core.editor vim
$ git config --global color.ui true
$ git init
$ git rm --cached file.py
Git tracks content, not files. Although there is a move command...
$ git mv file1 file2
...this is the same as...
$ mv file1 file2
$ git rm file1
$ git add file2
$ cat .gitignore
*.pyc
*.swp
/build/
/doc/[abc]*.txt
.pypirc
*.egg-info
• Blank lines or lines starting with # are ignored
• Standard glob patterns work
• End pattern with slash (/) to specify a directory
• Negate pattern with exclamation point (!)
$ git remote -v
origin git://github.com/schacon/ticgit.git (fetch)
origin git://github.com/schacon/ticgit.git (push)
$ git pull [<remote> <rbranch>]
$ git pull --rebase [<remote> <rbranch>]
-> Rebasing can be dangerous!
$ git merge iss53 Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.
• Then mark as resolved and trigger merge commit
$ git add index.html
$ git commit
$ git branch iss53
$ git checkout -b iss53 master
$ git checkout iss53
$ git branch -d iss53
$ git branch
iss53
* master
testing
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
$ git branch --merged
iss53
* master
$ git branch --no-merged
testing
CC BY-SA 3.0