Git学习5 GitLab与GitHub操作

1. GitLab与GitHub介绍

  • 二者是同类型的版本管理系统,他就是中央仓库,帮我们托管代码
  • 中央仓库我们可以自己部署,也可以使用第三方(gitlab、github)

gitLab介绍

  • GitLab 是利用 Ruby On Rails 开发的一个开源版本管理系统,实现了一个自托管的 Git 项目仓库。
  • 是集代码托管、测试、部署于一体的开源 git 仓库管理软件,可通过 web 界面来进行访问公开的或私人项目
  • 与 Github 类似,GitLab 能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问
  • https://gitlab.com/users/sign_in
  • 登录之前,需要先注册账号

Github

  • Github 只能创建公开项目,若创建私人的项目,是收费的
  • GitLab 在企业中使用较多,可以本地部署

gitLab 注册

参考链接

登录 gitlab
在这里插入图片描述

在这里插入图片描述

安装 gitLab 服务器

2. 私有GitLab服务器部署

  • 需要有一套 Linux 操作系统
    • 在 CentOS 系统上,下面的命令将会打开系统防火墙HTTP和SSH访问
    • 添加 GitLab 镜像源并安装
    • 配置并启动 GitLab
    • 修改默认端口号

3. GitLab创建仓库

直接使用远程的 gitlab,而不是本地自己部署的 gitlab 服务器
先登录gitlab ,然后创建工程
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
创建成功

在这里插入图片描述

让我们做一些全局的设置(Git global setup)

  • 在本地使用下面的命令进行设置
  • 配置全局的用户名和邮箱
git config --global user.name "zgd123121"
git config --global user.email "xiaozheng123121@163.com"

Create a new repository(创建新的存储库)

git clone https://gitlab.com/zgd123121/mygitlabproject.git  # 这是远程仓库的地址,让你克隆
cd mygitlabproject  # 切换到目录 mygitlabproject
git switch -c main
touch README.md  # 创建文件 README.md 文件
git add README.md  # 添加
git commit -m "add README"  # commit 提交
git push -u origin main  # 然后 push,其中origin代表的是远程仓库的地址https://gitlab.com/zgd123121/mygitlabproject.git

Push an existing folder

cd existing_folder
git init --initial-branch=main
git remote add origin https://gitlab.com/zgd123121/mygitlabproject.git
git add .
git commit -m "Initial commit"
git push -u origin main

Push an existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.com/zgd123121/mygitlabproject.git
git push -u origin --all
git push -u origin --tags

操作 全局的设置(Git global setup)之前,我们先进性【免密码登录】设置
在这里插入图片描述

4. GitLab免密码登录配置

  • 配置 SSH 密钥
    • 点击 add an SSH key
    • 在本地电脑当中添加生成密钥
    • clone 远程的仓库到本地当中

配置密钥的作用:每次提交或者clone代码的时候,就不需要再输入当前用户的密码了。
在这里插入图片描述

点击上图中的 Add SSH key ,跳到添加页面中

  • 要求在下面的 key 空白处,放入当前电脑的密钥(就是告诉gitlab,哪一台电脑访问这个地址的时候,不需要输入密码),此时需要你把电脑里面的SSH(rsa加密技术),要求你放一个公钥进去,
    在这里插入图片描述
  • 在本地电脑中添加生成密钥
    • 命令: ssh-keygen -t rsa 在客户端生成一对密钥, -t 表示加密类型
    • 操作:
    • 在电脑 C 盘用户当中查看生成的密钥
    • 把 id_rsq.pub 的内容复制到 gitlab 当中

跑到 user1 文件夹中(其它地方应该也可以)右击选择 Git Bash Here
在这里插入图片描述
输入命令 ssh-keygen -t rsa,然后回车
在这里插入图片描述
然后一路回车下去

在这里插入图片描述

5. GitLab上传下拉代码

让我们做一些全局的设置(Git global setup)

  • 在本地使用下面的命令进行设置
  • 配置全局的用户名和邮箱
git config --global user.name "zgd123121"
git config --global user.email "xiaozheng123121@163.com"

Create a new repository(创建新的存储库)

git clone git@gitlab.com:zgd123121/mygitlabproject.git  # 这是远程仓库的地址,让你克隆
cd mygitlabproject  # 切换到目录 mygitlabproject
git switch -c main
touch README.md  # 创建文件 README.md 文件,我们下面案例中创建 a.txt
git add README.md  # 添加
git commit -m "add README"  # commit 提交
git push -u origin main  # 然后 push,其中origin代表的是远程仓库的地址https://gitlab.com/zgd123121/mygitlabproject.git

在这里插入图片描述

然后把 git clone https://gitlab.com/zgd123121/mygitlabproject.git放到窗口中,回车,成功clone了下来,不过内容是空的
在这里插入图片描述

本地创建文件 a.txt
在这里插入图片描述
然后添加到本地,
在这里插入图片描述
通过git status 命令查看状态,发现a.txt为红色,需要先添加到本地git add *,然后再提交git commit -m'user1 a.txt'

在这里插入图片描述
现在 a.txt 已经提交到了本地 git,还没有提交到远程gitlab中,通过git push -u origin mainpush到远程
在这里插入图片描述
显示 100% 的时候,就相当于把我们本地创建的 a.txt 内容推送到了远程 gitlab 中。去 gitlab 检查一下,发现推送成功!!!
在这里插入图片描述
现在已经实现了把本地的内容推送到中央仓库中了,总结一下:

  • 首先,从中央仓库中将工程clone下来,
  • 拿下来之后,再去做推送

接下来,新建文件夹 myUser1
在这里插入图片描述
然后进入 myUser1, 点击 git bash here,重新进行clone,此时文件夹为空
在这里插入图片描述
在这里插入图片描述
这个地址有两个,一个是 SSH 的,一个是 HTTPS 的,我们要 SSH 的,把它复制一份,
在这里插入图片描述
复制一份之后,回到myUser1的git窗口,贴进来,回车
在这里插入图片描述
点击回车之后,我们又把远程的一个项目克隆到了本地,此时文件夹myUser1内多了文件夹mygitlabproject。
在这里插入图片描述
并且还有了a.txt,
在这里插入图片描述
现在搞一个冲突出来,什么意思呢?现在不是两个工程嘛,两个人(mygitlabproject和myUser1),
在这里插入图片描述
在这里插入图片描述
然后先提交到本地,再提交到远程
在这里插入图片描述
下图操作后,已经将修改的 a.txt 提交到了本地
在这里插入图片描述
提交到本地之后,再去 push 到远程,写上主分支 main
在这里插入图片描述
然后,在另外一个工程中,也修改这个代码,
在这里插入图片描述
然后打开git窗口,然后做一个操作
在这里插入图片描述
先添加到本地,commit提交,
在这里插入图片描述
现在,该提交远程了,先做一个 push, origin表示远程地址,也就是你当时克隆下来内容的地址(你从哪里克隆的)
当你push的时候,它能不能push成功呢?
在这里插入图片描述
push 失败,是因为在这个里面,先让你 fetch,
在这里插入图片描述

因为远程仓库里面刚才在外面的时候,在下图所示的时候(无需再次操作),你已经把修改的内容提交到了远程仓库里面。
在这里插入图片描述
所以,你在下图这个路径里面(无需再次操作),你想要做 push 的时候,必须先 fetch 一下,也就是先pull一下,
在这里插入图片描述
pull 的时候,产生冲突了,因为我们改的是同一个文件,同一个 a.txt,所以产生冲突
在这里插入图片描述
打开myUser1/mygitlabproject/a.txt文件
在这里插入图片描述
解决冲突的办法:删除红框的内容即可
在这里插入图片描述
在这里插入图片描述
删掉之后,做一个保存,然后需要重新做一次提交,由于a.txt做了一次修改,颜色变红,需要重新add和commit,
在这里插入图片描述
然后,再push,git push -u origin 主分支 回车,这时候就没有问题了,因为已经把冲突解决了,然后就可以push 到远程了
在这里插入图片描述
当看到100%的时候,代表 push 成功。

之后,来到工程里面(gitlab远程仓库),查看是否有我们提交的记录,以及文件的内容。

看到,最后一次记录(Last commit)就是 解决冲突,
在这里插入图片描述
然后点进去,就可以看到我们合并的内容,就是下图myuser1和user1两个人协作完成的内容。
在这里插入图片描述
这个过程和之前是一样的,只不过把远程仓库换成了 gitlab,之前用的本地模拟。

Push an existing folder

cd existing_folder
git init --initial-branch=main
git remote add origin git@gitlab.com:zgd123121/mygitlabproject.git
git add .
git commit -m "Initial commit"
git push -u origin main  # origin 就是上面第三行的地址

Push an existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.com:zgd123121/mygitlabproject.git
git push -u origin --all
git push -u origin --tags

6. GitLab分支操作

使用 gitlab 创建分支,
在这里插入图片描述
从哪个节点切出的分支,其内容和该节点的内容是一样的,
在这里插入图片描述
现在从 main 里面创建一个分支 newBranch
在这里插入图片描述
创建完之后,main分支和newBranch分支内容是一样的,
在这里插入图片描述
现在已经完成分支创建。当前所在的分支就是 newBranch,可以进行分支切换
在这里插入图片描述
完成分支切换,切换到 main 分支里面
在这里插入图片描述
再次切换到 newBranch 分支,去添加一些东西,比如,去添加一个文件,
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点击提交之后,就把文件提交到了 newBranch 分支里面
在这里插入图片描述
然后,再回到工程 mygitlabproject 里面,newFile.python 文件已经添加到newBranch分支中,而main分支中没有该文件
在这里插入图片描述
然后,查看当前工程( mygitlabproject )有多少分支
在这里插入图片描述
在这里插入图片描述

上图可以看到,显示有2个分支,即 2 Branches,点击进入
在这里插入图片描述
如果 newBranch不想要了,可以点击右侧按钮,进行删除
在这里插入图片描述
再去在客户端里面克隆一下代码,克隆完之后,查看一下有没有 main 和 newBranch 这两个分支,创建用户 myUser3
在这里插入图片描述
进入myUser3,进行克隆工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件显示的是主分支(main)的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将分支切换到 newBranch 中,文件 newFile.python就出现了
在这里插入图片描述
查看分支,当前所在分支为 newBranch
在这里插入图片描述
至此,完成分支操作。

7. GitHub操作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值