安装配置
$ git config --global user.name "Your Name" $ git config --global user.email [email protected]
使用co作为checkout的alias
$ git config --global alias.co checkout
设置git的默认编辑器
$ git config --global core.editor "subl -w"
Replace "subl -w" with "mate -w" for TextMate, "gvim -f" for gVim, or "mvim -f" for MacVim.
初始化git空文件夹
$ git init
Initialized empty Git repository in /Users/mhartl/rails_projects/first_app/.git/
配置rails命令生成的.gitignore文件
# Ignore bundler config /.bundle # Ignore the default SQLite database. /db/*.sqlite3 # Ignore all logfiles and tempfiles. /log/*.log /tmp
Mac OS 如此配置
# Ignore bundler config /.bundle # Ignore the default SQLite database. /db/*.sqlite3 # Ignore all logfiles and tempfiles. /log/*.log /tmp # Ignore other unneeded files. doc/ *.swp *~ .project .DS_Store
add和commit
$ git add .
查看状态
$ git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.rdoc # new file: Rakefile ...
提交命令
$ git commit -m "Initial commit" [master (root-commit) df0a62f] Initial commit 42 files changed, 8461 insertions(+), 0 deletions(-) create mode 100644 README.rdoc create mode 100644 Rakefile
(-m让你添加一条提交信息)
查看git日志
$ git log commit df0a62f3f091e53ffa799309b3e32c27b0b38eb4 Author: Michael Hartl <[email protected]> Date: Thu Oct 15 11:36:21 2009 -0700 Initial commit ...
$ git checkout -f $ git status # On branch master nothing to commit (working directory clean) $ ls app/controllers/ application_controller.rb
$ git remote add origin [email protected]:<username>/first_app.git $ git push origin master
$ git checkout -b modify-README Switched to a new branch 'modify-README' $ git branch master * modify-README
$ git mv README.rdoc README.md $ subl README.md
# Ruby on Rails Tutorial: first application This is the first application for [*Ruby on Rails Tutorial: Learn Rails by Example*](http://railstutorial.org/) by [Michael Hartl](http://michaelhartl.com/). $ git status # On branch modify-README # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: README.rdoc -> README.md # # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README.md #
$ git commit -a -m "Improve the README file" 2 files changed, 5 insertions(+), 243 deletions(-) delete mode 100644 README.rdoc create mode 100644 README.md
$ git checkout master Switched to branch 'master' $ git merge modify-README Updating 34f06b7..2c92bef Fast forward README.rdoc | 243 -------------------------------------------------- README.md | 5 + 2 files changed, 5 insertions(+), 243 deletions(-) delete mode 100644 README.rdoc create mode 100644 README.md
$ git branch -d modify-README Deleted branch modify-README (was 2c92bef).
# For illustration only; don't do this unless you mess up a branch $ git checkout -b topic-branch $ <really screw up the branch> $ git add . $ git commit -a -m "Major screw up" $ git checkout master $ git branch -D topic-branch
$ git push
$ git push fatal: The current branch master is not tracking anything.