1.1 GitHub远程版本库
1.1.1 GitHub简介
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。1.1.2 GitHub的注册与登录
git窗口下: ll-a.ssh 查看是否拥有?没有则next
回车键后,“ssh-keygen”
回车键,要求输入一个东西,但是我们直接不管
回车键,为密钥加密
回车键,我们则直接两次回车
直接生成密钥。
catid .ssh/idrsa.pub 生成一个公钥,粘贴进入sshkey界面。
1.1.3 免密登录原理
(1)免密登录机制
A、公钥与私钥 :两把钥匙都是我本地机器生成的,不是服务器生成的。公钥是可以发给所有种类的副武器的。
B、免密登录工作原理
想要免密登陆服务器,自己生成公钥与私钥,然后自己发给服务器公钥。
1.1.4 设置本地库对GitHub的免密登录
(1) 本地库主机设置
配置Git 首先在本地创建ssh key;
$ ssh-keygen -t rsa -C "[email protected]"
后面的[email protected]
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
为了验证是否成功,在git bash下输入:
$ ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
$ git config --global user.name "your name" $ git config --global user.email "[email protected]"
进入要上传的仓库,右键git bash,添加远程地址:
$ git remote add origin git@github.com:yourName/yourRepo.git
后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote "origin"内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
<h3创建新仓库< h3="" data-filtered="filtered" style="color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "WenQuanYi Micro Hei", Arial, sans-serif; font-size: 13px; text-align: start; background-color: rgb(255, 255, 255);">创建新文件夹,打开,然后执行 git init
以创建新的 git 仓库。
(2) GitHub设置
1.1.5 创建GitHub远程空版本库
1.1.6 本地库内容push 到远程库
1.1.7 从远程库clone到本地库
1.1.8 从远程库pull内容到本地库
1.1.9 查看本地的远程库信息
1.1.10 删除本地的远程库信息gitremote rm
1.1.11 版本发行
现代的开发多采用敏捷开发模式,该开发模式可以应对需求的快速变化,可以频繁交付新的软件版本,其采用迭代方式逐步完善软件功能。当开发出新的版本后如何发行呢?Git中软件版本的发行,是通过标签完成的。
需要注意的是,这里的版本发行,发行的是源码版本,并非编译过的二进制bin版本发行。当然,这两个版本的发行的区别主要就差在一个是否使用Maven进行打包。当该源码版本经过Maven的package后,就变为了二进制bin的发行了。
(1) 什么是标签
一个软件的某个发行版本对应的其实就是软件开发过程中某一阶段的最后一次git commit提交。我们知道每一个Git提交,对应的都会有一个commit-id,而标签就是与某一个commit-id绑定的名称。一个标签一旦与某一commit-id绑定,那么该标签就不能再被修改绑定到其它commit-id了,除非将该标签删除后才可与其它commit-id绑定。