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

目录

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 "[email protected]"
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 “[email protected]”
15.添加远程仓库
      git remote add origin [email protected]: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 "[email protected]"              // 创建SSH KEY
  - 2.open .ssh/id_rsa.pub  或 cat .ssh/id_rsa.pub       // 打开SSH文件夹目录复制Key
  - 3.github平台上设置刚才复制的key                         // 复制key
  - 4.ssh -T [email protected]                             // 链接验证SSH是否成功

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

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

你可能感兴趣的:(Git、Github、GitLab详解(持续更新))