目录

  • 1. GitLab与GitHub介绍
    • gitLab介绍
    • Github
    • gitLab 注册
    • 安装 gitLab 服务器
  • 2. 私有GitLab服务器部署
  • 3. GitLab创建仓库
  • 4. GitLab免密码登录配置
  • 5. GitLab上传下拉代码
  • 6. GitLab分支操作
  • 7. 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操作

Git学习5 GitLab与GitHub操作相关推荐

  1. git学习——设置gitlab、github默认push的用户名和密码

    在使用git的时候,不同的环境下,当你重新安装git,最好在开始的时候就配置一下默认的git的用户名和密码,这样子就可以在每次的push的时候不需要手动的在去输入git的用户名和密码,提高执行的效率. ...

  2. 使用git同时连接gitlab和GitHub

    使用git同时连接gitlab和GitHub 其实很简单,在本地新建两个文件夹,一个是gitlab的本地库,另外一个是github的本地库,其他的照旧. 一.git的ssh key的安装 配置: 假设 ...

  3. Git 学习笔记:6 GitHub

    Git 学习笔记:6 GitHub 账户的 创建和配置 SSH访问 头像 邮件地址 两步验证 对项目做贡献 派生(fork)项目 GitHub 流程 创建合并请求 利用合并请求 合并请求的进阶用法 将 ...

  4. git学习笔记[idea整合GitHub,Gitee](非常详细)

    1.学习目标 2.Git概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和 ...

  5. 【分布式版本控制系统Git】| Git 分支操作、Git 团队协作机制、GitHub 操作

    目录 一:Git 分支操作 1. 什么是分支 2. 分支的好处 3. 分支的操作 二:Git 团队协作机制 1. 团队内协作 2. 跨团队协作 三:GitHub 操作 1. 创建远程仓库 2. 远程仓 ...

  6. Git 版本控制器 Gitlab与Github(企业级总结)

    文章目录 一.版本控制系统/版本控制器 1.版本控制系统 2.Git与Svn介绍 (1)Git (2)Svn 二.Git 基本操作 1.创建仓库命令 2.提交与修改 3.提交日志 4.远程操作 三.G ...

  7. Git 分支操作、Git 团队协作机制、GitHub 操作

    文章目录 第 4 章 Git 分支操作 4.1 什么是分支 4.2 分支的好处 4.3 分支的操作 4.3.1 查看分支 4.3.2 创建分支 4.3.3 修改分支 4.3.4 切换分支 4.3.5 ...

  8. Git学习(一)本地操作

    Git使用 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.打开git 在指定要作为仓库的文件下打开 Git Bash Here 二.确定用户信息 第一次使用git,配置用户信息.目的是确定本地 ...

  9. 【git学习】GitLab中如何批量删除本地以及远程的TAG标签

    一.需求描述 之前从一个古老的仓库,fork了一份代码,如何开发新的需求.发现有很多Tag和Branch都是之前仓库的,我并不需要,因此需要把他们清理掉. 之前Branch的我们写好了脚本删除了,这里 ...

最新文章

  1. 浅析jQuery的链式调用 之 each函数
  2. python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串
  3. 使用nodejs应用查询SAP HANA Express Edition里的数据
  4. 要不要出去找一份实习?
  5. Spring中IoC的入门实例[转]
  6. java实现系列化的jdk_Java反序列化之与JDK版本无关的利用链挖掘
  7. mysql数据库,当数据类型是float时,查询居然查询不出数据来
  8. BZOJ4627 前缀和 + 权值线段树
  9. 游戏服务器宕机应对措施
  10. 已知空间中ABC3点坐标与到D点的距离,求D点坐标
  11. 合成PDF(多文件变一文件、多页变一页)
  12. excel宏教程_用Excel做个年会抽奖软件,老板惊呆了!
  13. 数据科学导引——租车人数预测模型 线性回归模型
  14. No way to dispatch this command to Redis Cluster because keys have different slots.
  15. ET城市大脑发布“天擎”系统:处理16小时视频仅用1分钟
  16. 苏州最新税前税后计算机,苏州税前税后工资计算标准
  17. 《谁说菜鸟不会数据分析 入门篇》学习笔记
  18. 跟风用Matlab画一棵圣诞树
  19. # Java 并发编程的艺术(二)
  20. 常用的振弦传感器分类及无线振弦采集仪的常见问题

热门文章

  1. java每日一练——第九天:美元和人民币
  2. pwd ls cd less more head more命令的用法
  3. reg51.h 说明
  4. 2020-07-23 哪些情况,会导致过不了背景调查那一关?
  5. 县级智慧城市建设方案_我国47%的县级以上城市提出智慧城市方案
  6. 链游PlaceWar完成300万美元战略融资,新兴热门币PLACE
  7. 轻量而敏捷的工业组态软件UI设计工具-机械组态篇
  8. Python Django提交表单时报错:Forbidden (403) CSRF verification failed. Request aborted.
  9. python求和函数1-n_PYTHON1.day11(n)
  10. 【JavaScript 教程】第六章 数组03— Stack :使用 Array 的push()和pop()方法实现堆栈数据结构...