「git」学习笔记

https://git-scm.com/book/zh/v2/

初次运行 Git 前的配置

https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%88%9D%E6%AC%A1%E8%BF%90%E8%A1%8C-Git-%E5%89%8D%E7%9A%84%E9%85%8D%E7%BD%AE

ssh-keygen -t rsa -C "邮箱"
cd  ~/.ssh
cat id_rsa.pub

用户信息

你可以通过以下命令查看所有的配置以及它们所在的文件:

git config --list --show-origin

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

git config --global user.name "用户名"
git config --global user.email "邮箱"

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

文本编辑器

如果你想使用不同的文本编辑器,例如 Emacs,可以这样做:

git config --global core.editor emacs

获取帮助

若你使用 Git 时需要获取帮助,有三种等价的方法可以找到 Git 命令的综合手册(manpage):

git help <verb>
git <verb> --help
man git-<verb>

例如,要想获得 git config 命令的手册,执行

git help config

这些命令很棒,因为你随时随地可以使用而无需联网。

git add -h

获取 Git 仓库

通常有两种获取 Git 项目仓库的方式:

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库;
  2. 从其它服务器 克隆 一个已存在的 Git 仓库。

两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。

在已存在目录中初始化仓库

$ git init 

该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。

$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'

克隆现有的仓库

$ git clone https://github.com/libgit2/libgit2 mylibgit

Git基本理论

三个区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

image-20230306162813224

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

记录每次更新到仓库

请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 Git 已经知道的文件。

lifecycle

检查当前文件状态

$ git status
$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。

跟踪新文件

$ git add README

上传至仓库

GitHub workflow

  • yml文件的编写

    # This is a basic workflow to help you get started with Actions
    
    name: main
    
    # Controls when the action will run. Triggers the workflow on push or pull request
    # events but only for the master branch
    on:
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: checkout # 步骤的名称
            uses: actions/checkout@v1 #软件市场的名称
            with: # 参数
                submodules: true
          - name: Setup Hugo
            uses: peaceiris/actions-hugo@v2.2.2
            with:
                hugo-version: '0.64.1'
                extended: true
          - name: Build Blog
            run: hugo -D
    
          # 使用大佬提供的代码 - https://github.com/manyuanrong/setup-ossutil
          - uses: actions/checkout@master
          - uses: manyuanrong/setup-ossutil@v2.0
            with:
              # endpoint 可以去oss控制台上查看
              endpoint: "oss-cn-beijing.aliyuncs.com"
              # 使用我们之前配置在secrets里面的accesskeys来配置ossutil
              access-key-id: ${{ secrets.ACCESS_KEY_ID }}
              access-key-secret: ${{ secrets.ACCESS_KEY_SECRET }}
          - name: Deply To OSS
            run: ossutil cp ./ oss://billie-s-blog/ -rf
    


1393 字