3-团队操作和github操作

AffettoIris 2023-2-2 2,507 2/2

1.1 团队内协作

3-团队操作和github操作

老头创立了华山剑法,push到远程库上,被小伙子clone了完整的一份,小伙基于此代码更新了两招,经审核后push到远程库,随后老头从远程库pull下来,实现了老头和小伙和远程库的代码是一致的。

1.2 跨团队协作

3-团队操作和github操作

老头这边的团队不知道怎么再优化剑法了,就请女帝团队优化。女帝从老头的远程库fork(复刻、复制)下完整的剑法至女帝的远程库,然后女帝从女帝的远程库clone至自己的本地库,优化后push到女帝的远程库,然后向老头发送pull request(意思是代码优化好了,要求老头pull至老头的远程库以更新老头远程库的代码),老头接到消息后审核了一番,确认OK便merge,实现了老头的远程库被更新到,随后老头和小伙分别从老头远程库pull至自己的本地库,实现了原创团队拥有了外包团队的优化版代码。

1.3 Github操作

由于github开源精神,以前github私有仓库是收费的,现在不收费,但私有仓库超过5个人还会收费,所以对于不开源的公司,推荐搭建gitlab仓库。

在github创建公开仓库后,可以获得仓库的https连接,我们接下来给仓库起别名,因为该网址太长了记不住,别名短,好记。

3-团队操作和github操作

首先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 reset, errno 10054。原因是服务器的SSL证书没有经过第三方机构的签署,所以才报错,要么用ssh连接去推送,要么按下面方法。

解决办法:解除ssl验证后,再次git即可:
git config --global http.sslVerify false
但是每次重启git bash就要解除ssl一次。

3-团队操作和github操作

口令或者by浏览器登录然后如下图,最后一个100%表示push成功。

3-团队操作和github操作

1.5 Git Add 多个文件

添加一个或多个文件到暂存区:

如git add hello.txt hello.php 

添加指定目录到暂存区,包括子目录:

git add afetoiris

添加当前目录下的所有文件到暂存区:

git add .

1.6 从远程库Pull到本地库

git pull 别名/远程库地址 拉去远程库的哪个分支

先在远程库添加一行代码,然后拉去。

3-团队操作和github操作

拉取后git status发现working tree clean,说名pull会自动地在本地库将工作区文件commit:

3-团队操作和github操作

1.7 凭据管理器

3-团队操作和github操作

这个凭据是在我们用git bash登录github账号时生成的,git bash一次只能记录一个github账号,所以你要想在同一台电脑的git bash切换github账号,需要先删除该凭据。该凭据只能用于git bash登录账号。

1.8 Git Clone 远程库地址

3-团队操作和github操作

clone public远程库是不需要登录账号,因为public目的就是公开的。随后查看temp文件夹的变化:

3-团队操作和github操作

3-团队操作和github操作

发现全clone过来了,说明clone会做如下操作:1.拉取代码2.初始化本地库(因为.git也过来了)3.创建别名。但是分支只有master过来了,而且远程库别名也不叫git-demo,叫origin

1.9 团队内协作之更新远程库

岳不群的华山剑法已存在于远程库。令狐冲clone过来了,随后又加入一行"added by lhc",并git add、git commit,然后lhc准备push到远程库:

3-团队操作和github操作

权限不够,令狐冲被拒绝了,因为令狐冲和岳不群知道他们是师徒,是一个团队的,但是github不知道啊,所以仓库所有者ybq需要将lhc加入到仓库的成员中。岳不群的操作如下:

3-团队操作和github操作

3-团队操作和github操作

3-团队操作和github操作

页面显示lhc在邀请中,复制邀请链接,发给令狐冲,令狐冲打开网址看到如下界面,同意即可。

3-团队操作和github操作

随后令狐冲再次push代码至远程库,已经没问题了:

3-团队操作和github操作

1.10 跨团队合作之实战演示

东方不败在github首页(在其他页面搜索的结果不包含仓库)搜索 账号名/仓库名可搜索到指定的仓库,如下:

3-团队操作和github操作

再简单点,岳不群直接将仓库的https连接发给东方,东方打开浏览器即可看到仓库。

东方不是岳不群团队的人,东方得对岳的项目fork到自己的号上,fork后会显示如下:

3-团队操作和github操作

然后东方可以在线对代码编辑,完成后她可以添加日志信息,还可以添加可选的额外的详细描述:

3-团队操作和github操作

接着她得让岳不群来pull,就点击Pull requests - New pull request

3-团队操作和github操作

3-团队操作和github操作

岳不群此时号上显示:

3-团队操作和github操作

点击后显示:

3-团队操作和github操作

再点击后:

3-团队操作和github操作

绿色部分显示了代码的更新区域。假设此时岳对东方更新的代码有疑惑,岳退回上一页,准备留言询问东方:

3-团队操作和github操作

而东方的视角:

3-团队操作和github操作

当然,如果岳认可东方的代码,岳可以Merge pull request:

3-团队操作和github操作

1.11 SSH免密登录

一个仓库除了https连接还有SSH免密登录:

 3-团队操作和github操作

3-团队操作和github操作

为了演示,删除iris/.ssh文件夹。随后运行命令生成.ssh密钥目录,生成过程中机器会问你三个可选的操作,一路enter到底即可。

ssh-keygen -t rsa -C affettoiris@yeah.net
-t是指定加密算法,C是Comment,添加描述,这里我放了我的邮箱描述这个密钥是我邮箱专用密钥。

生成了如下文件,id_rsa.pub是公钥,id_rsa是私钥,复制公钥,打开github的设置,如下操作,添加本台电脑专属的SSH公钥:

3-团队操作和github操作3-团队操作和github操作

从此本电脑就可以通过ssh免密登录github了(github有本电脑的公钥,本电脑有私钥,自然不是问题)。

接着如果把我号从凭据管理器上删了,使用命令:git pull 远程库的ssh连接 master拉取是不需要我登录账号的。当然,我更新了代码,在git add、git commit之后,输入git push 远程库的ssh连接 master,推送也是不需要登录账号的。

- THE END -

AffettoIris

10月16日15:51

最后修改:2023年10月16日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论