简述
如果要使用git进行团队协作,则必须要使用一个
代码的远程托管中(如:GitHub、GitLab等)
团队内协作
我的理解是:
- 团队负责人将自己的本地库的代码push(推送)到代码托管中心去
- 团队的成员将团队负责人push到代码托管中心的代码clone(克隆复制)到自己的本地库中
- 团队成员将clone的代码修改后,再将本地库的内容,重新push(推送)到代码托管中心,这个推送是需要团队负责人给团队成员开通权限后才可以push代码
- 团队成员将代码push到代码托管中心后,团队负责人便可以pull(拉取)这修改后的代码,团队负责人本地库的代码便会更新
- 如此三方(代码托管中心、团队负责人、团队成员)的代码就进行了同步
跨团队协作
团队之外的人对远程库的代码进行修改,通过fork
GitHub
GitHub网址:https://github.com/
注册登录过程就不说了,自行上网搜索
创建远程库
远程库是基于账号的,所以重名是没有关系的
点击create repository便可以完成创建了
然后会出现下面的界面
上面有一个链接,后面使用的都是这个链接,目前先使用的是HTTPS的链接:https://github.com/yy-2000/git-demo.git(点击HTTPS便可得到https开头的一个链接了)
远程仓库的操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
查看当前所有远程地址别名
查看当前所有远程地址别名
git remote -v
创建远程仓库别名
git remote add 别名 远程地址
本地代码推送远程库中
git push 别名 分支
如果没有别名,也可以使用链接
将master分支推送到远程库中去
然后需要登录,便会出现如下的提示
- 这个需要输入你的账号密码
- 这个需要输入的是账号
- 这个输入的是token
我第一次提交的时候,账号密码输入的都是登录的账号密码导致出现下面的报错内容
这个问题的具体解决方法如下: - 进入GitHub页面,选择settings
- 按如下选择
然后就会生成一个token,第二次的密码输入这个token即可
成功提交的界面如下:
然后我们刷新便可发现如下改变
在这里也可以打开这个文件,进行修改
拉取远程库到本地库
基本语法
git pull 别名 分支
演示:
- 直接在远程库修改文件内容
新增了如下内容
在这个页面的下面可以进行commit,如下
点击后,会进入下面的页面
- master分支更新本地库,拉取master分支
- 查看本地库状态,会发现这种拉取会自动将拉取的代码提交到本地库
克隆远程仓库到本地
基本语法
git clone 远程地址
演示:
- 在下面的目录中新建一个目录gitClone
- 在上面的目录中右键选择gitBashHere(进入上面的目录也可以通过cd命令进入,与linux系统一样),如下所示
- 使用git clone 地址,这个命令进行克隆,如下所示
地址如下:
克隆成功
克隆是不需要登录账号(因为这个库是public的)
clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
创建的别名origin如下
邀请加入团队
需要将其他团队成员加入团队后,团队成员才可以对该远程库进行push等需要权限的操作
邀请步骤如下:
- 团队负责人选择需要邀请其他成员的远程库,点击settings,如下:
- 选择Collaborations,如点击add people
- 上面的完成后会出现下面的提示框,在这个提示框中输入成员账号即可
- 添加成功后,当前界面会出现一列新内容,需要复制下面红框内容
- 将4步复制的链接,在该成员账号下打开这个链接(直接在浏览器打开),过后就会出现下面内容,选择Accept即可(Decline是拒绝的意思)
- 上面的操作成功后,在该成员的账号下是可以看见这个远程库的,选择该成员便有权限push远程库
跨团队协作
大概操作流程如下:
-
邀请人将远程仓库的地址复制发给邀请跨团队协作的人,
-
在被邀请人的 GitHub 账号里的地址栏复制收到的链接,然后点击 Fork 将项目叉到自己的本地仓库。(在东方不败的 GitHub 账号里的地址栏复制收到的链接,然后点击 Fork 将项目叉到自己的本地仓库)
-
被邀请人就可以在线编辑叉取过来的文件
-
编辑完毕后,填写描述信息并点击左下角绿色按钮提交。
-
接下来点击上方的 Pull 请求,并创建一个新的请求
-
回到邀请人的 GitHub 账号可以看到有一个 Pull request 请求。(进入到聊天室,可以讨论代码相关内容)
-
如果代码没有问题,可以点击 Merge pull reque 合并代码(merge后还可以进行二次确认)
SSH 免密登录
到远程仓库中还有一个 SSH 的地址,我们也可以使用 SSH 进行访问
这个链接目前不能使用,因为没有ssh,生成这个的操作如下:
-
进入windows当前用户的目录,删除当前目录下的.ssh目录
-
在这个目录下右键–》git Bash Here,使用如下目录
实际操作如下
-
输入对应的内容后,连续enter三次,然后在之前的目录下会发现一个.ssh目录,这里面有一个公钥(.pub)和私钥(id_rsa)
-
需要将公钥里面的内容复制下来,复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
-
点击后,将提示框里面对应的内容填入,然后点击add
公钥添加成功后,接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了