git版本控制¶
代码回溯、版本切换、多人协作、远程备份
本地仓库、远程仓库
命令:
- commit:提交,将本地文件和版本信息保存到本地仓库
- push:推送,将本地仓库文件和版本信息上传到远程仓库
- pull:拉取,将远程仓库文件和版本信息下载到本地仓库
全局设置¶
设置用户信息
查看配置信息
时光穿梭¶
-
本地初始化git仓库(不常用)
-
远程克隆仓库
-
添加文件到Git仓库,分两步:
-
查看仓库当前状态
-
版本回退
-
撤销修改
-
删除文件
-
远程仓库操作
远程仓库¶
- 添加关联到远程库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步。
添加后,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
- 从远程库克隆
要克隆一个仓库,首先必须知道仓库的地址,然后使用
git clone
命令克隆。
Git支持多种协议,包括https
,但ssh
协议速度最快。
工作区、暂存区、版本库¶
- 工作区:包含
.git
文件夹的目录就是工作区 - 暂存区:
.git
文件夹中有很多文件,其中就有一个index文件,里面是临时保存修改文件 - 版本库:前面看到的
.git
文件夹就是版本库。里面有日志文件、配置信息、文件版本等
工作区->暂存区->版本库
git add ->暂存区 git commit->版本库
使用GitHub¶
在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。
但是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。
如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:
一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git
克隆,因为没有权限,你将不能推送修改。
官方仓库、克隆仓库、本地仓库关系如下
┌─ GitHub ────────────────────────────────────┐
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ twbs/bootstrap │────>│ my/bootstrap │ │
│ └─────────────────┘ └─────────────────┘ │
│ ▲ │
└──────────────────────────────────┼──────────┘
▼
┌─────────────────┐
│ local/bootstrap │
└─────────────────┘
如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。