当前位置:   article > 正文

Git教程——GitHub、团队内协作、跨团队协作_github项目协作

github项目协作

上篇文章我们学习了Git教程——Git分支,这篇文章我们学习Git教程——GitHub、团队内协作、跨团队协作。

在之前的Git教程中,我们使用的是本地仓库,不需要联网也可以对我们的项目做版本控制,这样别人无法帮助我们修改项目代码。

今天我们来学习一个全球最大的代码托管服务平台——GitHub。

GitHub是一个代码托管服务平台,帮助开发者存储和管理其项目代码、追踪、记录并控制用户对其代码的修改,甚至可以把它当做一个网盘,用来存储任何东西。

在GitHub还可以查看或使用别人的项目代码。

这里我们就不详细介绍GitHub了。

使用GitHub的一个重要原因是方便我们共同开发项目或请别人帮忙开发项目,也就是项目的团队内协作或跨团队协作。

为了演示团队内协作和跨团队协作,我们创建了三个GitHub账号(lin0507X、Hero0507、BQKL66),如下图所示:

假设lin0507X和Hero0507是一个团队并且开发某个音乐软件,BQKL66是另一个团队协作lin0507X团队开发。

仓库

lin0507X作为项目组长,在GitHub平台中创建了名为MusicProject的仓库,如下图所示:

创建仓库后,我们在Code按钮获取仓库的HTTPS链接,该链接可以用来推送、拉取、克隆项目,如下图所示:

仓库别名

每次用到仓库链接时,都要输入那么长的链接,这显然是不方便的,这时我们可以为仓库起别名,仓库别名相关代码如下:

  1. git remote -v    # 查看当前所有远程仓库别名
  2. git remote add 别名 仓库链接   # 创建仓库别名
  3. git remote remove 别名      # 移除别名

注意:

  • 别名可以是任意的,但最好和项目相关的;

  • 仓库链接错误书写时,别名也会创建成功。

示例代码如下:

  1. git remote -v
  2. git remote add MusicProject https://github.com/lin0507X/MusicProject.git
  3. git remote -v
  4. git remote remove MusicProject

这里我们创建的别名为MusicProject,如下图所示:

我们创建别名后,查看当前所有远程仓库别名可以发现多了两条数据,这两条数据(push/fetch)表示推送项目和克隆项目都可以使用MusicProject别名。

操作完删除别名后,请大家重新正确创建别名。

推送项目

接下来我们开始推送项目到Github仓库,推送项目语法格式如下:

git push 别名/仓库链接 本地分支:远程仓库分支

当本地分支和远程仓库分支名一样时,可以只写一个分支名。

注意:推送项目时,要么用别名,要么仓库链接。

示例代码如下:

git push MusicProject master

如下图所示:

第一次推送时,会出现左边方框让我们绑定Github账号,点击Sign in with your browser,再点击Authorize git-ecosystem即可,点击后如下图所示:

new branch master->master,这说明了新建了一个分支,并从本地master分支推送到master分支。

注意:可能会因为网络原因导致推送失败,大家多试几次或隔段时间尝试才能成功推送。

我们可以在凭证管理器查看GitHub凭证,如下图所示:

可以看到,这时就有了Github凭证了。

这时我们查看MusicProject仓库,可以发现已经成功把MusicApp.txt文件推送上去了。

接下来演示修改MusicApp.txt文件后,再推送到GitHub,示例代码:

  1. vim MusicApp.txt     # 编辑MusicApp.txt
  2. git status          # 查看状态
  3. git add .    # 添加所有文件到暂存区
  4. git commit -m '第一次修改后推送'  # 提交到本地仓库

如下图:

注意:此时我们提交到本地库,接下来通过如下代码即可推送到Github仓库,示例代码如下:

git push -u MusicProject master

有人可能会说,怎么这次多了-u,-u表示默认,所以这里默认推送到MusicProject master分支上,那么下次直接可以使用git push即可推送到MusicProject master分支上。

推送成功后,Github仓库上的MusicApp.txt也发生了变化。

拉取项目

我们也可以从Github仓库上直接修改仓库中的文件,点击你想要修改的文件,点击红框,如下图所示:

这样就成功在Github上直接修改文件了,此时Github和本地仓库的文件内容是不一致的,所以我们需要在Github上拉取项目,拉取项目语法如下:

git pull 仓库别名/仓库链接 分支

示例代码如下:

git pull MusicProject master

如下图所示:

查看本地的MusicApp.txt文件,发现已经和Github的一样了,这样就成功拉取了Github仓库的文件并和本地的MusicApp.txt文件合并了。

注意:尽量不要在Github直接修改文件。

当我们在GitHub仓库并在本地仓库修改MusicApp.txt文件,在本地仓库拉取GitHub仓库MusicApp.txt文件会发送冲突,如下图所示:

可以发现拉取发生了冲突,这时我们打开MusicApp.txt文件可以发现多了<<<<、====、>>>>符号,此时我们只需要把我们需要的内容保留,不需要的删除,并重新提交到Github仓库即可,提交示例代码如下:

  1. git add .   # 将目录下所有文件提交到暂存区
  2. git commit -m '解决冲突后提交'  # 提交到本地仓库
  3. git push MusicProject master   # 推送到Github仓库

克隆项目

lin0507X项目组长创建好了音乐软件初始模板了,此时组员Hero0507可以将模板MusicProject项目克隆到本地了,克隆项目语法格式如下:

  1. git clone -b 分支名 仓库链接   # 克隆制定分支
  2. git clone 仓库链接     # 克隆默认分支main

注意:这里演示Hero0507组员的操作,所以需要把凭证管理器中Github凭证删了,并且git也要换成Hero0507账号。

这里我们在桌面创建了名为Hero0507-MusicProject文件并用git打开,示例代码如下:

git clone -b master https://github.com/lin0507X/MusicProject.git

如下图所示:

这样就克隆成功了,但有人会问,不直接用pull拉取项目吗,我们知道pull拉取项目是在git和Github建立联系后才能拉取,现在这个是Hero0507账号,还没和Github建立联系,如下图所示:

报错告诉我们对接github数据失败。

注意:克隆下来的项目,会自动创建别名origin,如下图所示:

接下来我们把MusicApp.txt修改并提交到本地仓库,示例代码如下:

  1. vim MusicApp.txt
  2. git add .
  3. git commit -'Hero0507第一次提交'

接着推送到GitHub仓库,如下图所示:

可以发现push失败了,这是因为Hero0507还没添加到GitHub仓库项目成员,没有权限推送到Github仓库。

上面的push操作需要属于Hero0507的第一次推送,所以会出现让我们把Git和Github进行绑定,在绑定之前要把浏览器登录的Github账号换掉,这里我们换成了Hero0507的账号。

团队内

邀请成员

由于Hero0507不是MusicProject项目的成员,所以需要lin0507X邀请Hero0507为项目成员,如下图所示:

点击Pending Invite的复制按钮,就会出现一个链接,这个链接就是邀请函链接,只要Hero0507打开链接并点击Accept invitation即可成为项目成员,点击后,Hero0507就可以看到MusicProject仓库内容并且可以推送内容上去,这时Hero0507就可以推送成功了,如下图所示:

跨团队

在开发的过程中,遇到了一些问题,需要请另一个团队BQKL66帮忙解决,由于BQKL66是团队外的,所以需要使用fork将项目保存在BQKL66自己的仓库,如下图所示:

打开Github项目的链接,然后点击右边的Fork按钮后,如下图所示:

注意:需要去掉Copy the main branch only的勾选,否则只Fork了main分支。

点击Create fork即可Fork项目,如下所示:

这样就BQKL66就成功forked项目了,Fork项目后,我们可以克隆到本地后修改文件,再提交到Github仓库,也可以直接到Github里面修改,这里我们为了方便,直接在Github修改,如下图所示:

注意:这样只是在BQKL66的Github上修改了文件。

接下来点击左上角的Pull request,再点击New pull request后,如下图所示:

在点击Create pull request之前要先确定好项目的分支,如上图1、2红框所示,再确定红框3的内容。都确认无误后,点击Create pull request后,继续点击create pull request即可。

点击后,在lin0507X的Github项目点击pull request,如下图所示:

点击红框2后,点击Merge pull request,再点击confirm merge即可,这样就成功把lBQKL66修改的内容合并到lin0507X里面了。

好了,Git教程——GitHub、团队内协作、跨团队协作就讲到这里了。

公众号:白巧克力LIN

该公众号发布Python、数据库、Linux、Flask、自动化测试、Git、算法、前端、服务器等相关文章!

- END -

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/733411
推荐阅读
相关标签
  

闽ICP备14008679号