声明:本文参考廖雪峰git教程。
- 远程仓库
- 创建远程库
去github上,点击“Create repository”创建一个新的repository。现在github上的这个仓库还是空的,从提示可以看到,github允许我们从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后再把本地仓库的内容推送到github上。这里,我选择后者。到自己本地要创建仓库的文件夹,输入命令行:
git init
git remote add origin git@github.com:username/reposname.git
git push -u origin master
远程库的名字就是origin
,是git默认的叫法。git push
命令把本地库的内容推送到远程,实际上是把当前分之master
推送到远程。-u参数,是由于远程库是空的,第一次推送master
分支,使用-u
,git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
- 克隆远程库
克隆github上已有的库到本地,到本地git目录:
git clone git@github.com:username/reposname.git
cd reposname
查看已经克隆好的文件。git支持https和ssh等协议,使用https的问题是:速度慢,最重要的是每次推送都必须输入口令。但是在某些只开放http
端口的公司内部就无法使用ssh
协议而只能用https
。
- 分支管理
在git里,只有一条时间线,叫主分支(master
分支)。HEAD
指向master
,确定当前分之和当前分之的提交点, master
指向新的提交。每次提交,master
分支就会向前移动一步,这样随着不断提交,master
分支线越来愈长。
创建新的分支如new
时,git新建一个指针new
,指向master
相同的提交,再把HEAD
指向new
,就表示当前分支在new
上,此时,master
指针不变。合并时,直接把master
指向new
的当前提交,就完成了合并;合并后,可以删除new
指针,删除后,就只剩下master
分支了。
创建新分支new
:
git checkout -b new
-b
表示创建并切换,相当于:
git branch new
git checkout new
查看当前分支:
git branch
“*”表明是当前分支。
提交新版本:
git add filename
git commit -m “branch test”
切换回master
分支,把new
分支合并到master
分支,
git checkout master
git merge new
Fast-forward
表示是“快进模式”, 也就是直接把master
指向new
的当前分支,所以合并速度非常快。删掉new
分支,
git branch -d new
下面查看所有分支就只有master
分支了。