美文网首页收藏文章Linux
Git、Github、GitLab详解(持续更新)

Git、Github、GitLab详解(持续更新)

作者: 黄成瑞 | 来源:发表于2020-06-19 13:01 被阅读0次
    目录

    1.Git、Github、GitLab的介绍
    2.分布式版本控制系统 和 集中式版本控制系统
    3.Github的使用
    4.GitLab的使用(个人)
    5.Sourcetree的使用
    6.git终端命令的简单使用(含git命令大全)
    7.SSH Key

    一、Git、Github、GitLab的介绍

    GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

    • Git:是一个版本控制系统,是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统。Git 是分布式版本控制系统。
    • Github:提供公有仓库和私有仓库,私有仓库是收费的。
    • GitLab:可以免费创建私人仓库(优势:允许免费设置仓库权限、允许用户选择分享一个 project 的部分代码、 允许用户设置 project 的获取权限进一步提升安全性、可以设置获取到团队整体的改进进度、通过 innersourcing 让不在权限范围内的人访问不到该资源)
      所以,从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
    二、分布式版本控制系统 和 集中式版本控制系统
    • 分布式版本控制系统:不依赖于中央服务器
    • 集中式版本控制系统:SVN、CVS,它们都有着一个单一的集中管理服务器(中央服务器),该服务器保存了所有文件的修订版本,协同合作的开发人员都通过客户端连接到这台服务器,取出最新的文件或者提交更新。
    • 两者的工作原理
      分布式版本控制系统:拉去最新版本 ---> 本地修改文件 ---> 提交到本地仓库 ---> 推送到远程仓库(我们使用相关的客户端提取的不只是最新的文件,而是把代码仓库完整地镜像下来,相当于每个人的电脑都是一个完整的版本库,这样的话,任何一处协同工作的服务器出现故障,都可以用任何一个镜像出来的本地仓库恢复。并且,即便在网络环境比较差的情况下也不用担心,因为版本库就在本地电脑上。说白了就是本地电脑里不用联网也可以查看历史版本的哦~)
      集中式版本控制系统:从中央服务器上拉取最新的版本 ---> 本地修改文件 ---> 提交到中央服务器上 (缺点:需要联网,历史仓库在中央服务器上)
    三、Github的使用

    github官网

    • 1.申请github平台账号并登陆
    • 2.New新建一个仓库
    • 3.填写仓库信息并点击Create repository创建仓库(到此你已经成功在github平台上创建了一个仓库,接下来将会使用Sourcetree工具或者git终端命令去继续使用仓库,请继续往下看)
      注意⚠️:Initialize this repository with a README这个勾选项是你本地电脑已经存在了git仓库时不要勾选,如果你还没有本地git仓库时勾选它,这里我以没有本地git仓库为例。
    四、GitLab的使用(个人)

    gitLab官网

    • 1.申请github平台账号并登陆(这里我用github账号登陆的)
    • 2.Create一个新的仓库
    • 3.创建一个空白项目
    • 4.填写仓库信息
    • 5.创建项目仓库(到此你已经成功在gitlab上创建了一个自己的仓库了)
    五、Sourcetree的使用

    Sourcetree简介:这个工具简化了您与Git存储库交互的方式,因此您可以专注于编码。通过Sourcetree的简单Git GUI可视化和管理您的存储库。 工具下载地址:https://www.sourcetreeapp.com

    • 1.在上面我们分别在Github和GitLab上创建了我们的仓库,现在我们拿Github仓库远程地址来看看如何使用,这一步就是获得git仓库远程地址,拷贝下来链接
    • 2.下载并安装Sourcetree工具,然后打开该工具
    • 3.点击新建,选择从URL克隆
    • 4.创建一个空的文件夹,用来保存我们的远程仓库(保存在本地的叫做本地仓库)
    • 5.源URL是我们远程仓库的地址,路径是我们本地新建文件夹的路径,然后点击克隆,这时本地已经成功克隆了远程仓库。恭喜了。
    • 6.修改本地仓库的README文件(随便写个字符串)
    • 7.选中改变的文件放到暂存区
    • 8.输入本次提交的信息
    • 9.点击提交
    • 10.如果你本地仓库代码不是最新的就需要拉取下来(没有直接略过)
    • 11.推送到远程,如果有冲突解决冲突再提交然后推送到远程就可以了。到此你已经学会了SourceTree的使用了
    六、git终端命令的简单使用

    终端Terminal简介:苹果的终端应用程序是OS X的bash shell的直接接口,它是UNIX基础的一部分。我们可以使用终端来管理我们的git仓库 打开终端下载git:使用Homebrew安装Git,如何安装HomeBrew在我之前的文章中有详细记载~ 命令:brew install git

    • 1.克隆 --- 克隆远程仓库到本地
      cd 新建文件夹的目录路径
      gjt clone 仓库远程地址
    • 2.修改 --- 在刚才克隆下来的本地仓库文件夹中放入你想要存放的文件
    • 3.提交 --- 将想要存放的文件提交到远程仓库上
      cd 刚才新建的iOS工程路径下
      git add . // 文件添加到暂存区(.代表提交所有文件)
      git commit -m "First Commit" // 把文件提交到仓库
      git push // 上传到远程仓库
    git终端命令大全
    1.全局设置提交用户名称和邮箱
          git config --global user.name "hahaha"
          git config --global user.email "hahaha@163.com"
    2.初始化仓库
          git init
    3.添加到暂存区
          git add readme.txt
    4.提交到版本库
          git commit -m “wrote a readme file”
    5.git状态(有无未添加到暂存区/提交到版本库内容)
          git status
    6.查看文件有哪些改动
          git diff readme.txt
    7.提交记录
          git log/$ git log --pretty=oneline
    8.回退一个提交
          git reset --hard HEAD^
    9.看文件
          cat readme.txt
    10.回退到指定提交
          git reset --hard 1094a
    11.所有提交记录
          git reflog
    12.撤销工作区某文件的修改
          git checkout – readme.txt
    13.回退暂存区修改回工作区
          git reset HEAD readme.txt
    14.生成密匙
          ssh-keygen -t rsa -C “youremail@example.com”
    15.添加远程仓库
          git remote add origin git@github.com:hahaha/haha.git
    16.推送到远程仓库(绑定)
          git push -u origin master
    17.推送到远程库master分支
          git push origin master
    18.克隆
          git clone 仓库地址
    19.创建并切换分支
          git checkout -b dev
    20.创建分支
          git branch dev
    21.切换分支
          git checkout dev
    22.查看所以分支
          git branch
    23.将dev分支合并到当前分支
          git merge dev
    24.删除dev分支
          git branch -d dev
    25.冲突后修改本地文件后提交即可处理冲突
          git add readme.txt
    26.查看所以提交一行展示
          git log --graph --pretty=oneline --abbrev-commit
    27.合并分支(不使用快进方式,保留了被合并分支的提交记录)  
          git merge --no-ff -m “merge with no-ff” dev
    28.隐藏工作区修改
          git stash
    29.查看隐藏列表
          git stash list
    30.恢复隐藏回工作区
          git stash apply
    31.删掉隐藏记录
          git stash drop
    32.恢复指定隐藏
          git stash apply stash@{0}
    33.强制删除某分支
          git branch -D feature-vulcan
    34.查看远程库
          git remote
    35.远程库详细信息
          git remote -v
    36.推送到远程库dev分支
          git push origin dev
    37.本地创建dev分支并关联远程dev分支
          git checkout -b dev origin/dev
    38.拉取远程仓库到本地库
          git pull
    39.第一次拉取可能不成功,应为未建立连接,需要建立下连接
          git branch --set-upstream-to=origin/dev dev
    40.提交记录处理为一条直线记录
          git rebase
    41.添加版本
          git tag v1.0
    42.查看所以版本
          git tag
    43.给指定提交添加版本号
          git tag v0.9
    44.查看版本
          git show v0.9
    45.给指定提交指定版本号和备注信息
          git tag -a v0.1 -m “version 0.1 released” 1094adb
    46.删除某版本
          git tag -d v0.1
    47.推送本地版本到远程库
          git push origin v1.0
    48.推送所以本地版本到远程库
          git push origin --tags
    49.先删除本地版本信息
          git tag -d v0.9
    50.再删除远程版本信息
          git push origin :refs/tags/v0.9
    51.配置git信息(分颜色显示信息).gitignore文件
          git config --global color.ui true
    
    七、SSH KEY

    ssh是一种安全的传输模式,github要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码,用以验证你是否为合法用户,为了省去每次都要输入密码的步骤,采用公钥、密钥,也就是SSH KEY 来验证你是否为合法用户,在你的电脑生成了一个唯一的ssh公钥和私钥,公钥放到github上面,当你推送的时候,git就会匹配你的私钥是否跟github上面的公钥是配对的,正确就认为你是合法的,允许推送。SSH KEY 可以理解为是你的身份标识,放在github上面表明你是这个项目的一个开发人员,但是别人是可以截获的,你本机的私钥别人就无法截获,SSH KEY 就可以保证每次传输都是安全的。

    • SSH KEY的使用:
      - 1.ssh-keygen -t rsa -C "hahaha@163.com"              // 创建SSH KEY
      - 2.open .ssh/id_rsa.pub  或 cat .ssh/id_rsa.pub       // 打开SSH文件夹目录复制Key
      - 3.github平台上设置刚才复制的key                         // 复制key
      - 4.ssh -T git@github.com                             // 链接验证SSH是否成功
    

    友情提醒:
    1.如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。
    2.创建成功后会在~/路径下找到该.ssh文件夹,进去打开id_rsa.pub,这里面就是这个key了

    参考文章:
    Git、GitHub、GitLab三者之间的联系以及区别
    Mac上Git安装与GitHub基本使用

    相关文章

      网友评论

        本文标题:Git、Github、GitLab详解(持续更新)

        本文链接:https://www.haomeiwen.com/subject/wasvxktx.html