Git简明手册

来源:互联网 发布:树莓派 ubuntu mate 编辑:程序博客网 时间:2024/06/06 04:55

Git简明手册

Git是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。如今已经超越CVS、SVN称为主流的版本控制器。许多著名的开源项目都用Git管理。

概述

如果第一次启动Git(Windows下的Git),需要设置用户名和邮箱地址:

$ git config --global user.name "My Name"$ git config --global user.email "user@email.com"

Git

关于Git,GitHub和Heroku

  • Git是一个自由开源的版本控制器,它被设计用来高效管理大大小小的项目。
  • GitHub是一个用于使用Git版本控制系统的项目的基于互联网的存取服务,使用Ruby on Rails开发而成,是目前最流行的Git存取站点,许多优秀的开源项目都托管在GitHub上。
  • Heroku是一个基于PaaS的云服务平台,支持包括Java,Ruby,Node.js,和Clojure在内的多种语言开发的应用程序。

Git基本的工作流程

  • 初始化(init)一个新的版本库,然后将目录中的所有文件纳入管理,Git把这个过程称为stage,最后以快照的方式提交所有文件。
$ git init$ git add .$ git commit -m 'initial commit'
  • 创建一个新的分支(branch),将它检出(checkout)为活动分支,然后就可以编辑、载入和提交新的快照。
$ git branch featureA$ git checkout featureA# (edit files)$ git add (files)$ git commit -m 'add feature A'

git add (files)中(files)可以使具体的文件名,匹配所有用git add .

转换到master分支,恢复featureA分支中刚刚做的更改,然后编辑一些文件,并将这些更改提交到master分支。

$ git checkout master$ (edit files)$ git commit -a -m 'change files'

合并(merge)featureA分支到master分支,结合你的项目需要,可以删掉featureA分支。

$ git merge featureA$ git branch -d featureA

git操作

启动&初始化

Git的配置、版本库初始化(init)和克隆(clone)。

git config [key] [value]配置版本库参数git config --global [key] [value]为用户设置全局属性git init将已经存在的一个目录初始化为Git版本库git clone [url]从一个URL地址克隆(clone)一个Git版本库git help [command]获取帮助

暂存&快照

使用Git的快照(snapshots)和暂存区(staging area)。

git status显示下次提交的暂存区的状态和工作目录的更改git add [file]添加文件到暂存区git reset [file]重置暂存区的一个文件使之前的更改不被暂存git diff显示未暂存的更改(即比较暂存和未暂存的项)git diff --staged显示未提交的更改(即比较暂存区和版本库)git commit以一个新的快照提交暂存项git rm [file]从工作目录和暂存区移除文件git gui启动Git GUI图形界面

分支&合并

使用Git的分支(branch)和临时存放(stash)。

git branch列出当前的所有分支,前边加*号的为当前活动分支git branch [branch-name]以当前的提交创建一个新的分支git checkout [branch]切换到另一个分支,并检出到当前工作目录git checkout -b [branch]创建一个新的分支并切换到该分支git merge [branch]进另一个分支合并到当前活动分支,并将此次合并记录为一次提交git log显示提交日志git stash临时存储当前未提交的更改git stash apply恢复最后一次的临时存储

共享&更新

抓取(fetch)、合并(merge),以及从另一个版本库获取更新。

git remote add [alias] [url]为一个URL地址添加别名git fetch [alias]从远程版本库拉取所有分支git merge [alias]/[branch]合并一个分支到当前活动分支,是当前活动分支更新到最新版本git push [alias] [branch]推送本地分支到远程版本库,使远程版本库获得更新git pull从当前分支跟踪的远程分支中合并数据到本地

检查&比较

抓取(fetch)、合并(merge),以及从另一个版本库获取更新。

git log显示当前分支的提交历史git log branchB..branchA显示branchA有而branchB没有的提交git log --follow [file]显示该文件的提交记录,包括重命名git diff branchB...branchA显示在branchA中而不在branchB中的不同git show [SHA]显示人可读格式的文件的gitx在GUI中显示提交记录

参与GitHub上的开源项目

先将托管在GitHub上的项目克隆(clone)到本地,做过更改之后推送回GitHub,然后发送一个pull请求,项目的维护者就会收到邮件通知。 在GitHub上fork(拷贝一份到你的版本库列表)项目:

$ git clone https://github.com/my-user/project$ cd project# (edit files)$ git add (files)$ git commit -m 'Explain what I changed'$ git push origin master

然后到GitHub上点击pull request按钮。

使用Git部署到Heroku

使用Heroku的命令行工具创建和管理远程应用:

$ heroku create[Creating glowing-dusk-965... done, stack is bamboo-mri-1.9.2http://glowing-dusk-965.heroku.com/ <http://glowing-dusk-965.heroku.com/> | git@heroku.com:glowing-dusk-965.git <x-msg://536/git@heroku.com:glowing-dusk-965.git> Git remote heroku added]

使用Git部署应用:

$ git push heroku master

创建一个额外的Heroku应用暂存,并将远程的暂存命名为“staging”:

$ heroku create my-staging-app --remote staging

用Git部署远程的暂存:

$ git push staging master

GitHubHeroku

出处: http://www.mceiba.com/       感谢作者,排版很清楚~便于查看学习

原创粉丝点击