免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2112 | 回复: 1
打印 上一主题 下一主题

git应用入门 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-23 21:31 |只看该作者 |倒序浏览
git应用入门






gitconfigrailsruby
安装配置

Bash代码  
$ git config --global user.name "Your Name"  
$ git config --global user.email your.email@example.com  

$ git config --global user.name "Your Name"
$ git config --global user.email your.email@example.com

使用co作为checkout的alias

Java代码  
$ git config --global alias.co checkout  

$ git config --global alias.co checkout

设置git的默认编辑器

Java代码  
$ git config --global core.editor "subl -w"  

$ 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空文件夹

Java代码  
$ git init  

$ git init
Initialized empty Git repository in /Users/mhartl/rails_projects/first_app/.git/

配置rails命令生成的.gitignore文件




Java代码  
# Ignore bundler config   
/.bundle   
  
# Ignore the default SQLite database.   
/db/*.sqlite3   
  
# Ignore all logfiles and tempfiles.   
/log/*.log   
/tmp  

# Ignore bundler config
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3

# Ignore all logfiles and tempfiles.
/log/*.log
/tmp


Mac OS 如此配置

Java代码  
# 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  

# 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

Java代码  
$ git add .  

$ git add .

查看状态

Java代码  
$ 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 status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   README.rdoc
#       new file:   Rakefile
...


提交命令

Java代码  
$ 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  

$ 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日志


Java代码  
$ git log   
commit df0a62f3f091e53ffa799309b3e32c27b0b38eb4   
Author: Michael Hartl <michael@michaelhartl.com>   
Date:   Thu Oct 15 11:36:21 2009 -0700  
  
  Initial commit   
...  

$ git log
commit df0a62f3f091e53ffa799309b3e32c27b0b38eb4
Author: Michael Hartl <michael@michaelhartl.com>
Date:   Thu Oct 15 11:36:21 2009 -0700

  Initial commit
...


关于回滚
Java代码  
$ git checkout -f   
$ git status   
# On branch master   
nothing to commit (working directory clean)   
$ ls app/controllers/   
application_controller.rb  

$ git checkout -f
$ git status
# On branch master
nothing to commit (working directory clean)
$ ls app/controllers/
application_controller.rb
(-f强制重写当前改变)

关于同步到远程github
Java代码  
$ git remote add origin git@github.com:<username>/first_app.git   
$ git push origin master  

$ git remote add origin git@github.com:<username>/first_app.git
$ git push origin master

关于git的分支
Java代码  
$ git checkout -b modify-README   
Switched to a new branch 'modify-README'  
$ git branch   
master   
* modify-README  

$ git checkout -b modify-README
Switched to a new branch 'modify-README'
$ git branch
master
* modify-README
(使用checkout的-b创建分支,git branch查看当前所有的分支,*说明当前的分支
git checkout -b modify-README创建分支并转换到当前分支

关于git的编辑功能
Java代码  
$ git mv README.rdoc README.md   
$ subl README.md  

$ git mv README.rdoc README.md
$ subl README.md
mv类似unix的mv

新的README.md
Java代码  
# 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   
#  

# 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
#

提交
Java代码  
$ 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 commit -a -m "Improve the README file"
2 files changed, 5 insertions(+), 243 deletions(-)
delete mode 100644 README.rdoc
create mode 100644 README.md
(-a提交所有改变)

关于合并Merge
Java代码  
$ 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 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

合并了所有changes后可以执行以下命令
Java代码  
$ git branch -d modify-README   
Deleted branch modify-README (was 2c92bef).  

$ git branch -d modify-README
Deleted branch modify-README (was 2c92bef).
用以删除合并了的分支,这步可选

Java代码  
# 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  

# 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 branch -D 遗弃分支
(与-d不同,-D可以删除没有合并过的分支)

关于push
Java代码  
$ git push  

$ git push
在大多数系统上可以省略origin master直接使用git push
在某些系统上会出现问题
Java代码  
$ git push   
fatal: The current branch master is not tracking anything.  

$ git push
fatal: The current branch master is not tracking anything.




论坛徽章:
0
2 [报告]
发表于 2012-02-25 11:35 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP