老头创立了华山剑法,push到远程库上,被小伙子clone了完整的一份,小伙基于此代码更新了两招,经审核后push到远程库,随后老头从远程库pull下来,实现了老头和小伙和远程库的代码是一致的。
1.2 跨团队协作
老头这边的团队不知道怎么再优化剑法了,就请女帝团队优化。女帝从老头的远程库fork(复刻、复制)下完整的剑法至女帝的远程库,然后女帝从女帝的远程库clone至自己的本地库,优化后push到女帝的远程库,然后向老头发送pull request(意思是代码优化好了,要求老头pull至老头的远程库以更新老头远程库的代码),老头接到消息后审核了一番,确认OK便merge,实现了老头的远程库被更新到,随后老头和小伙分别从老头远程库pull至自己的本地库,实现了原创团队拥有了外包团队的优化版代码。
1.3 Github操作
由于github开源精神,以前github私有仓库是收费的,现在不收费,但私有仓库超过5个人还会收费,所以对于不开源的公司,推荐搭建gitlab仓库。
在github创建公开仓库后,可以获得仓库的https连接,我们接下来给仓库起别名,因为该网址太长了记不住,别名短,好记。
首先git remote -v查看当前所有远程地址别名,发现空的。然后给刚创建的仓库添加git-demo别名,格式是git remote add 别名 远程地址,再次git remote -v发现了两行记录,一个用于拉取仓库,一个用于向仓库推送。
1.4 向远程库Push
git push 别名 分支名
如果没有别名,直接用远程库的https连接也是可以的。分支名用于指定推送本地库的哪个分支到远程库上。
Git推送咱的代码需要咱的账号。请连接vpn以成功push。我第一次push报错如下:fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was , errno 10054。原因是服务器的SSL证书没有经过第三方机构的签署,所以才报错,要么用ssh连接去推送,要么按下面方法。
解决办法:解除ssl验证后,再次git即可:
git config --global http.sslVerify false
但是每次重启git bash就要解除ssl一次。
口令或者by浏览器登录然后如下图,最后一个100%表示push成功。
1.5 Git Add 多个文件
添加一个或多个文件到暂存区:
如git add hello.txt hello.php
添加指定目录到暂存区,包括子目录:
git add afetoiris
添加当前目录下的所有文件到暂存区:
git add .
1.6 从远程库Pull到本地库
git pull 别名/远程库地址 拉去远程库的哪个分支
先在远程库添加一行代码,然后拉去。
拉取后git status发现working tree clean,说名pull会自动地在本地库将工作区文件commit:
1.7 凭据管理器
这个凭据是在我们用git bash登录github账号时生成的,git bash一次只能记录一个github账号,所以你要想在同一台电脑的git bash切换github账号,需要先删除该凭据。该凭据只能用于git bash登录账号。
1.8 Git Clone 远程库地址
clone public远程库是不需要登录账号,因为public目的就是公开的。随后查看temp文件夹的变化:
发现全clone过来了,说明clone会做如下操作:1.拉取代码2.初始化本地库(因为.git也过来了)3.创建别名。但是分支只有master过来了,而且远程库别名也不叫git-demo,叫origin
1.9 团队内协作之更新远程库
岳不群的华山剑法已存在于远程库。令狐冲clone过来了,随后又加入一行"added by lhc",并git add、git commit,然后lhc准备push到远程库:
权限不够,令狐冲被拒绝了,因为令狐冲和岳不群知道他们是师徒,是一个团队的,但是github不知道啊,所以仓库所有者ybq需要将lhc加入到仓库的成员中。岳不群的操作如下:
页面显示lhc在邀请中,复制邀请链接,发给令狐冲,令狐冲打开网址看到如下界面,同意即可。
随后令狐冲再次push代码至远程库,已经没问题了:
1.10 跨团队合作之实战演示
东方不败在github首页(在其他页面搜索的结果不包含仓库)搜索 账号名/仓库名可搜索到指定的仓库,如下:
再简单点,岳不群直接将仓库的https连接发给东方,东方打开浏览器即可看到仓库。
东方不是岳不群团队的人,东方得对岳的项目fork到自己的号上,fork后会显示如下:
然后东方可以在线对代码编辑,完成后她可以添加日志信息,还可以添加可选的额外的详细描述:
接着她得让岳不群来pull,就点击Pull requests - New pull request
岳不群此时号上显示:
点击后显示:
再点击后:
绿色部分显示了代码的更新区域。假设此时岳对东方更新的代码有疑惑,岳退回上一页,准备留言询问东方:
而东方的视角:
当然,如果岳认可东方的代码,岳可以Merge pull request:
1.11 SSH免密登录
一个仓库除了https连接还有SSH免密登录:
为了演示,删除iris/.ssh文件夹。随后运行命令生成.ssh密钥目录,生成过程中机器会问你三个可选的操作,一路enter到底即可。
ssh-keygen -t rsa -C affettoiris@yeah.net
-t是指定加密算法,C是Comment,添加描述,这里我放了我的邮箱描述这个密钥是我邮箱专用密钥。
生成了如下文件,id_rsa.pub是公钥,id_rsa是私钥,复制公钥,打开github的设置,如下操作,添加本台电脑专属的SSH公钥:
从此本电脑就可以通过ssh免密登录github了(github有本电脑的公钥,本电脑有私钥,自然不是问题)。
非特殊说明,本博所有文章均为博主原创。
共有 0 条评论