Git简明手册
Git是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。如今已经超越CVS、SVN称为主流的版本控制器。许多著名的开源项目都用Git管理。概述
如果第一次启动Git(Windows下的Git),需要设置用户名和邮箱地址:
关于Git,GitHub和Heroku
- Git是一个自由开源的版本控制器,它被设计用来高效管理大大小小的项目。
- GitHub是一个用于使用Git版本控制系统的项目的基于互联网的存取服务,使用Ruby on Rails开发而成,是目前最流行的Git存取站点,许多优秀的开源项目都托管在GitHub上。
- Heroku是一个基于PaaS的云服务平台,支持包括Java,Ruby,Node.js,和Clojure在内的多种语言开发的应用程序。
Git基本的工作流程
- 初始化(init)一个新的版本库,然后将目录中的所有文件纳入管理,Git把这个过程称为stage,最后以快照的方式提交所有文件。
- 创建一个新的分支(branch),将它检出(checkout)为活动分支,然后就可以编辑、载入和提交新的快照。
git add (files)
中(files)可以使具体的文件名,匹配所有用git add .
。
转换到master分支,恢复featureA分支中刚刚做的更改,然后编辑一些文件,并将这些更改提交到master分支。
合并(merge)featureA分支到master分支,结合你的项目需要,可以删掉featureA分支。
启动&初始化
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(拷贝一份到你的版本库列表)项目:
然后到GitHub上点击pull request
按钮。
使用Git部署到Heroku
使用Heroku的命令行工具创建和管理远程应用:
使用Git部署应用:
创建一个额外的Heroku应用暂存,并将远程的暂存命名为“staging”:
用Git部署远程的暂存:
出处: http://www.mceiba.com/ 感谢作者,排版很清楚~便于查看学习