远程仓库--githup
做项目时会使用git进行版本控制,虽说git不需要联网但也需要一台电脑充当服务器,作为初始版本,而githup这网站就是提供Git仓库托管服务的,不过要使用你得先注册,未注册的请移步:https://github.com/。当你注册完毕后就可以进行下一步的动作了,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第一步:创建ssh key;(windows本地可使用git bash,没有的可执行下载,地址)
$ ssh-keygen -t rsa -C "youremail@example.com"
该命令主要生成id_rsa和id_rsa.pub这两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何 人。你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。
第二步,登录GitHub,打开setting----ssh and gpg keys
title----填写名称,key----粘贴id_rsa.pub文件的内容,点击就添加好了。
(注:当你这个未填写是,执行这个git push -u origin master命令会报错:
fatal: Could not read from remote repository.)
ssh连接秘钥添加好了就可以把本地的添加到远程库了,添加之前需要githup中建立一个库,登录账号,点击右上角的加号,点击 new repository ,出现如下界面
填写仓库名和描述,若是克隆到本地则勾选 Initialize this repository whith a README,否则不勾选直接点击Creat repository。
既然远程库已有就可以添加文件了,
git remote add origin git@github.com:zzgchina/learngit.git (git@github.com:zzgchina/learngit.git改为自己的地址)
获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
git push -u origin master(我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。git push origin master)
运行着两个文件,你的本地库就推送到githup上了。
若是克隆则用着命令:git clone git@github.com:zzgchina/learngit.git.
添加分支:
首先,我们创建dev
分支,然后切换到dev
分支:
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout
命令加上-b
参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然后,用git branch
命令查看当前分支:
$ git branch
* dev
master
git branch
命令会列出所有分支,当前分支前面会标一个*
号。
然后,我们就可以在dev
分支上正常提交,比如对readme.txt做个修改,加上一行:
Creating a new branch is quick.
然后提交:
$ git add readme.txt
$ git commit -m "branch test"
[dev fec145a] branch test
1 file changed, 1 insertion(+)
现在,dev
分支的工作完成,我们就可以切换回master
分支:
$ git checkout master
Switched to branch 'master'
切换回master
分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev
分支上,而master
分支此刻的提交点并没有变
我们把dev
分支的工作成果合并到master
分支上:
$ git merge dev
Updating d17efd8..fec145a
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
git merge
命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev
分支的最新提交是完全一样的。
注意到上面的Fast-forward
信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master
指向dev
的当前提交,所以合并速度非常快。
当然,也不是每次合并都能Fast-forward
,我们后面会讲其他方式的合并。
合并完成后,就可以放心地删除dev
分支了:
$ git branch -d dev
Deleted branch dev (was fec145a).
删除后,查看branch
,就只剩下master
分支了:
$ git branch
* master
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>