「git」学习笔记
https://git-scm.com/book/zh/v2/
初次运行 Git 前的配置
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 项目仓库的方式:
- 将尚未进行版本控制的本地目录转换为 Git 仓库;
- 从其它服务器 克隆 一个已存在的 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)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
记录每次更新到仓库
请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪 或 未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 Git 已经知道的文件。
检查当前文件状态
$ git status
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
新添加的未跟踪文件前面有 ??
标记,新添加到暂存区中的文件前面有 A
标记,修改过的文件前面有 M
标记。
跟踪新文件
$ git add README
上传至仓库
- git init
- git remote add origin https://github.com/chenxuefan/chenxuefan.github.io.git
- git add .
- git commit -m"update"
- git branch
- git push -u origin master
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