git

维基百科 - Git

学习资源介绍

Git 简介

Git 使用交互流程

git交互模型

安装和配置 Git 环境

git-bash 常用命令

  • pwd

  • ls 查看文件目录

    • ls -a 查看隐藏文件
  • cd

  • mkdir 创建文件

  • clear 清屏

  • rmdir

    • 只能删除空目录
  • rm

    • rm 文件名

    • rm -rf 目录名

      • 注:很强大,可以删除非空目录,以及一些比较顽固的文件或者目录

      git-bash 文件操作常用目录

  • touch:创建文件

  • cat 查看文件内容

  • less:查看大文本文件内容 (从头开始往下看)

  • vi 编辑 : (visual interface)

    • Esc 退出命令模式
    • i 进入插入模式
    • :q 退出vi
    • :w 保存编辑
    • :wq 保存并退出
    • :q! 强制退出不保存修改
    • vi 的所有操作基本都是命令,这里掌握基本使用就可以了
    • 有时候使用 git commit 进行提交的时候希望能多写几行提交日志,这时候可以省略 -m 参数进入 vi

基本使用

  • git init
    • 初始化一个 Git 仓库
  • git status
    • 查看当前工作区、暂存区、本地仓库的状态
  • git add 提交到暂存区
  • git commit 将文件存入文档库
    • 示例:git commit -m "日志说明" --author="操作者姓名 <邮箱>"
    • 执行 git commit 的时候,Git 会要求具有用户名和邮箱的参数选项
    • 可以通过 git config 命令配置一下用户名和邮箱
  • git log 查看提交日志
  • gitk 图形化的呈现出提交日志

总结:操作 Git 的基本工作流程就是先修改文件,然后执行 git add 命令。
git add 命令会把文件加入到暂存区,接着就可以执行 git commit 命令,将文件存入文档库,
从而形成一次历史记录。

  • 问题1:关于 Git-bash 中文问题
  • Git for Windows Unicode Support
  • 问题2:执行 commit 的时候一大堆的信息
  • 问题3:配置 user.name 和 user.email 问题

初始化配置

1
2
3
4
5
6
7
8
# 设置用户名
git config --global user.name "你的名字"
# 配置用户邮箱
git config --global user.email "你的常用邮箱"
# 设置 gitk 图形查看工具中文显示默认编码(防止乱码)
git config --global gui.encoding utf-8
# 查看配置列表项
git config --list

添加/删除文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加指定文件到暂存区
git add [files1] [files2] ...

# 添加指定目录到暂存区,包括子目录
git add [dir]

# 添加当前目录所有文件到暂存区
git add --all
gie add .

# 停止追踪指定文件,但该文件会保留在工作区 (也就是 把暂存区的文件给退回到工作区)
git rm --cached [file]

# 改名文件,并且将这个改名的放入暂存区
git mv [file-original] [file-renamed]

代码提交

1
2
3
4
5
6
7
8
9
10
11
12
13
# 提交到暂存区到仓库区
git commit -m [message]

# 提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化, 直接到仓库去
# (也就是说。 被跟踪过的 即之前在暂存区过的文件 可以直接越过暂存区提交到仓库区)
git commit -a -m [message]

# 使用一次新的commit, 替代上一次提交
# 如果代码没有任何新变化,则用改写上一次commit的提交信息
git commit --amend -m [message]

版本回退

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# git rm --cached <file>
# 恢复暂存区的指定文件到工作区
$ git checkout [file]

# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]

# 恢复暂存区的所有文件到工作区
$ git checkout .

# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard

# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]

# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]

# 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]

# 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]

# 暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop

分支基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 列出所有分支
git branch

# 基于当前分支新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 基于当前分支新建一个分支 并切换到该分支
git checkout -b [branch-name]

# 切换到指定分支,并更新工作区
git checkout [branch-name]

# 切换到上一个分支, 交替和上一个分支进行切换
git checkout -

# 合并指定分支到当前分支
git merge [branch-name]

# 删除分支
git branch -d [branch-name]

远程同步

  • remote
  • push
  • pull

在线仓库托管服务

一个不知道 github、stackoverflow 的程序员想想都是可悲的

  • github
  • 码云
  • coding

Github Pages

Github Pages 提供了一个免费在线托管静态资源的服务

使用方法如下:

  • 在个人的Github账户中创建一个仓库
  • 仓库名称必须为 个人账户名称.github.io
  • 往该仓库根目录提交一个 index.html文件
  • 然后就可以在地址栏输入 个人账户名称.github.io 地址,就可以看到 index.html 网页内容了

注意:上面的创建仓库名称必须是个人账户名称.github.io,否则无法访问。

Hexo

Hexo 是基于Node.js开放的一个静态博客生成器,提供了本地实时预览及部署功能,基本使用方法如下:

1
2
3
4
5
6
7
8
npm install  hexo-cli -g
hexo init blog(这个是文件名字)
cd blog
# 启动本地预览服务,默认是 127.0.0.1:4000
hexo server

# 新建文章
hexo new 文章标题

也可以参考Hexo官方文档 https://hexo.io/zh-cn/,里面有具体使用方式

自动发布 Hexo 搭建的静态博客

  • 第一:先修改 _config.yml配置文件,下面是一个示例:

    1
    2
    3
    deploy:
    type: git
    reop: https://wangpf1129:mima@github.com/wangpf1129/wangpf1129.github.io.git

    上面配置选项中,一定要注意repo中获取对应的格式加入Github用户名和密码。

  • 第二:安装自动发布的插件:

1
npm install hexo-deployer-git --save
  • 第三: 使用命令一键进行发布:
1
2
3
# 俩条命令都可以,发布可能有延迟,稍微等待即可
hexo generate --deploy
hexo deploy --generate

注意 如果访问不了 https://xxx.github.io

需要把本机电脑的 ipv4 协议中的 DNS 服务地址 修改为 114.114.114.114