• Git基础


    操作系统:win10

    Git 版本:2.28.0

    Git 入门

    Git 采用 C 语言编写,是目前世界上最先进的分布式版本控制系统。

    windows 安装

    直接进入官网 https://git-scm.com/downloads 下载对应的版本按默认选项安装即可,安装完成后在开始菜单打开 git bash,打开弹出命令行窗口一样的东西说明安装成功了~

    如果需要在 cmd 命令提示符中直接使用 git 命令,需要将git安装路径添加到环境变量->系统变量->path 中,如 D:Program FilesGitin

    安装完成可使用 git --version 查看git版本

    配置用户信息

    Git 安装完成后需要先配置全局用户信息,表示这台机器上所有的 Git 仓库都会使用这个配置。

    git config --global user.name "Your Name"
    
    git config --global user.email "email@example.com"

    概念

    • 版本库:Git 版本库又称为仓库(repository),可以简单理解为一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,都能够通过 Git 进行跟踪。
    • 工作区:电脑里能看到的目录,如 demo 文件夹就是一个工作区
    • 暂存区:工作区里的隐藏文件夹 .git 就是 Git 的版本库

    Git 的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD

     

    基础操作

    1. 创建版本库

    进入项目执行 git  init 命令将其变成一个 Git 仓库,执行成功后可以看到当前目录下多了一个 .git 目录,是 Git 用来跟踪管理版本库的

    注:切勿手动修改 .git目录,创建 Git 版本库时会自动创建一个 master 分支。

    2. 把文件添加到版本库

    demo 中新建 readme.txt,输入信息并保存(注意:一定不要使用 windows 自带的记事本编辑)

    (1) 把文件添加到仓库:git add readme.txt,该命令可多次使用来添加多个文件,也可使用 git add .  一次性添加所有文件

    (2) 把文件提交到仓库:git commit -m “add readme.txt”-m 后面跟的是本次的提交说明

    使用 git add 命令实际上是把工作区修改的文件修改添加到了暂存区,git commit 提交时会把暂存区的内容提交到当前分支。

    3. 查看仓库状态

    • git diff <file>:查看文件修改内容,如 readme.txt 之前 commit 之后又进行了一些修改,但是忘记了修改了什么内容,此时就可以使用该命令来查看具体的修改内容。

       

    • git status:查看当前仓库的状态,如上面修改 readme.txt 之后执行 git add 操作,在 commit 之前我们执行 git status 命令查看一下当前仓库的状态,它会提示我们 readme.txt 被修改了,将要被提交。

       

    4. 版本回退

    我们不停的对文件进行修改提交、修改提交操作,某一天提交后发现出现了问题,想要回到之前的版本,这个时候该怎么办呢?

    先来看一下我们提交的版本:

    版本1 readme.txt

    Git is a free software.

    版本2 readme.txt

    Git is a free software.

    This is my first git project.

    • git log 查看提交日志,确认回退版本,--pretty=oneline 参数显示简洁的日志

       

      在 Git 中,HEAD 表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本,要往上100个版本时可以写成 HEAD~100

    • git reset回退到上一个版本,即 add readme.txt 这个版本,也可以使用参数--hard指定回退到哪个版本

       

    • git reflog查看执行的历史命令

      如果万一回退之后后悔了,又找不到最新提交的版本号可以查看执行的历史命令

      

    5. 撤销修改

    • git checkout -- <file> 命令可以丢弃工作区的修改,有两种情况:

      一种是 file 还没有使用 add 命令添加到暂存区,撤销修改就回到和版本库一模一样的状态;如修改 readme.txt 后执行 checkout 命令,执行命令前后可以使用 git status 查看仓库状态

       

      一种是 file 已经使用 add 命令添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。如修改 readme.txt 并执行 add 命令后,再次修改 readme.txt,执行 checkout 命令,执行命令前后可以使用 git status 查看仓库状态

       

    6. 删除文件

    • git rm 文件名从版本库删除文件

       

    •  误删文件也可以使用 git checkout -- <file> 命令从版本库恢复文件

       

    远程仓库

    Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。通常情况下都是搭建一台运行了 Git 的服务器,24 小时开机,所有人都从这台服务器的仓库里提交、拉取代码。学习时可以使用 Github (一个提供Git仓库托管服务的网站,注册登录即可使用免费的 Git 远程仓库),由于本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,所以先需要在 Github 上添加 ssh-key,这样只有添加了 ssh-key 才能推送到 Github 仓库上。

    注:Git 支持多种协议,包括 https,但 ssh 协议速度最快。

    1. Github 配置 ssh key

    创建 ssh-key

    mkdir ~/.ssh  # 创建.ssh文件
    
    cd ~/.ssh
    
    git init
    
    git config --global user.name "Administrator"     # 添加一个全局的用户名和邮箱
    
    git config --global user.email "admin@example.com"
    
    ssh-keygen -t rsa -C "admin@example.com""   # 生成 ssh-key

    创建成功后在用户主目录 .ssh 目录里有 id_rsa id_rsa.pub 两个文件,这两个就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露,id_rsa.pub 是公钥。

    查看

    # 查看 git ssh-key,打开 git bash
    
    cd ~/.ssh  # 若没有则需要先创建,已经有了直接进入该目录查看 id_rsa.pub 文件
    
    ls
    
    cat id_rsa.pub

    github上配置ssh key 

    登录 Github 网站,打开“Account settings”->"SSH  and GPG Keys”->"New ssh key",将 id_rsa.pub 文件内容粘贴到 Key 文本框内保存即可。

     

    2. Github添加远程仓库

    Github 上新建远程仓库

     

    根据页面提示克隆出新的仓库,或与已有仓库进行关联

     

    3. 将 github 上的仓库克隆到本地

    git clone github仓库地址

    4. 关联已有仓库

    git remote add origin 远程仓库地址

    5. 远程操作

    拉取:git pull 远程主机名 远程分支名:本地分支名:git pull origin master

    推送:git push 远程主机名 本地分支名:远程分支名:git push origin master

    6. 分支管理

    查看分支:git branch ,当前分支前面会有一个 *

    创建分支git branch <dev>

    创建并切换分支:git checkout -b <dev>、git switch -c <dev>(推荐)

    切换分支:git checkout <dev>、git switch <dev>

    合并指定分支到当前分支:git merge <dev>

    删除分支:git branch -d <dev>

    7. 标签管理

    创建标签:git tag <tagname>

    查看所有标签:git tag

    查看标签信息:git show <tagname>

    Gitlab 简介

    官方文档:https://docs.gitlab.com/

    简介

    Github 分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需服务器安装。

    Gitlab 分布式在线代码仓库托管软件,分为社区免费版本与企业收费版本,都需要服务器安装。

    Gitlab 优势

    • 开源免费,适合中小型公司
    • 差异化版本管理,离线同步及强大的分支管理功能
    • 便捷的 GUI 操作界面以及强大的账户权限管理功能
    • 集成度高
    • 支持内置 HA,保证在高并发下仍旧可以实现高可用性

    Gitlab 主要服务构成

    • Nginx:静态 web 服务器
    • gitlab-workhorse:轻量级的反向代理服务器
    • gitlab-shell:用于处理 Git 命令和修改 authorized keys 列表
    • Logrotate:日志文件管理工具
    • Postgresql:数据库
    • Redis:缓存服务器

    工作流程

    • 创建并克隆项目
    • 创建项目Feature分支
    • 编写代码并提交至分支
    • 推送项目分支至远程 gitlab 服务器
    • 代码检查并提交 master 主分支合并申请
    • 项目领导审查代码并确认合并申请
    • 部署

    Docker 部署 Gitlab

    1. 直接部署

    官方文档:https://docs.gitlab.com/omnibus/docker/

    docker run --detach 
    
      --hostname gitlab.example.com 
    
      --publish 443:443 --publish 80:80 --publish 22:22 
    
      --name gitlab 
    
      --restart always 
    
      --volume $GITLAB_HOME/config:/etc/gitlab:Z 
    
      --volume $GITLAB_HOME/logs:/var/log/gitlab:Z 
    
      --volume $GITLAB_HOME/data:/var/opt/gitlab:Z 
    
      gitlab/gitlab-ee:latest

    linux 下直接 pull 官方的 Gitlab 镜像即可使用,但是当我们把 volume 配置成 windows 本地路径时,volume 映射会出现一些问题,导致报错。

    Error executing action create on resource 'storage_directory[/var/opt/gitlab/git-data]

    我们可以使用 docker volume 数据卷挂载的方式来运行容器

    docker volume create gitlab-logs
    
    docker volume create gitlab-data
    
    docker run --detach `
    
        --name gitlab `
    
        --restart always `
    
        --hostname localhost `
    
        --publish 443:443 --publish 8082:80 --publish 22:22 `
    
        --volume D:dockergitlabconfig:/etc/gitlab `
    
        --volume gitlab-logs:/var/log/gitlab `
    
        --volume gitlab-data:/var/opt/gitlab `
    
        gitlab/gitlab-ce

    等待一段时间初始化完成后,浏览 http://localhost:8082/ 即可访问 gitlab,默认管理员账号为 root,重置一下密码即可使用。

     

    2. docker-compose 部署

    docker-compose.yml 文件

    # Compose file 版本号,和 docker 版本号对应。3 支持 docker 1.13.0+
    
    version: "3"
    
    # services 节点下包含多个待创建的 Docker Container
    
    services:
    
      # web 节点就是待启动的 gitlab 容器
    
      web:
    
        image: gitlab/gitlab-ce:latest
    
        container_name: "gitlab"
    
        restart: always
    
        hostname: '10.129.115.254:8082'
    
        environment:
    
          TZ: "Asia/Shanghai"
    
          GITLAB_OMNIBUS_CONFIG: |
    
            gitlab_rails["time_zone"] = "Asia/Shanghai"
    
            gitlab_rails["gitlab_shell_ssh_port"] = 10022
    
            nginx["listen_port"] = 80
    
        ports:
    
          - "8082:80"
    
          - "10022:22"
    
        volumes:
    
          - E:dockergitlabconfig:/etc/gitlab
    
          - gitlab-logs:/var/log/gitlab
    
          - gitlab-data:/var/opt/gitlab
    
    volumes:
    
      gitlab-logs:
    
      gitlab-data:

    打开 cmd,进入 docker-compose.yml 文件所在目录,运行命令  docker-compose up -d 即可创建并启动容器。

    Gitlab 使用

    前提:本机已安装 git

    1. 创建项目

    浏览器打开 http://localhost:8082/ 页面,新建一个项目保存

     

     保存成功后进入项目详情页,提示需要添加 ssh-key 才能拉取、推送代码,按照页面上的步骤添加ssh-key后进行操作即可。

     

    点击 “Add SSH Key” 添加你自己的ssh key保存即可

    现在就可以使用 git pullgit push 来推送、获取代码了~~~

  • 相关阅读:
    高二下期末考试
    LG月赛.7
    CF1187E
    P5440 【XR-2】奇迹
    P1084 疫情控制
    P1083 借教室
    P2680 运输计划
    P3128 [USACO15DEC]最大流Max Flow
    博弈入门
    HDU 1907
  • 原文地址:https://www.cnblogs.com/sharef/p/14059542.html
Copyright © 2020-2023  润新知