Git基础

操作系统:win10

Git 版本:2.28.0

Git 入门

 

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

 

windows 安装

 

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

 

 

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

 

安装完成可使用 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:\docker\gitlab\config:/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:\docker\gitlab\config:/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 来推送、获取代码了~~~

posted @ 2020-11-30 09:20  芒果日记  阅读(140)  评论(0编辑  收藏  举报