GitHub速查记录

1. 初始设置

设置Git时的姓名和邮箱地址:

1
2
git config --global user.name ""
git config --global user.email ""

这些指令会更改~/.gitconfig中的设置,所以也可以直接编辑这个文件。

2. 设置SSH Key

GitHub连接已有仓库的认证,是通过使用了SSH的公开密钥认证。

1
ssh-keygen -t rsa -C "email@example.com"

然后在GitHub添加公钥即可,后面就可以用自己私钥与GitHub交互。

3. 仓库常用操作

1. 仓库下载

通过git clone会下载.git文件夹,但是zip下载没有;

默认我们处于master分支下,同时系统自动将origin设置成远程仓库的标识符。

1
2
// https 或者 SSH均可
git clone https://github.com/TimeLovercc/TimeLovercc.github.io.git
2. 查看仓库状态
1
git status
3. 将文件加入版本管理

文件会放入暂存区,受到.git的管理。

1
git add hello_world.php
4. 提交

将当前暂存区的文件实际保存到仓库的历史记录中,我们可以通过这些记录复原文件;

参数--amend修改提交信息;

参数-am完成add, commit两步操作。

1
git commit -m "description"
5. 日志

可选参数--pretty=shot, 只显示提交信息的第一行;

如果加上目录名或文件名,则只显示与该目录或文件相关的记录;

可选参数-p, 会显示提交所带来的改动;

可选参数--graph,以图表形式查看分支;

注意,git log只能显示以当前状态为重点的历史日志。

1
git log
6. 上传
1
git push
7. 初始化仓库

生成.git,这是附属于仓库的工作数,会记录操作,便于恢复。

1
git init
8. 查看更改前后差别

如果查看工作数和暂存区差别,直接用;

如果查看工作树和最新提交的差别,用HEAD参数,如git diff HEAD,推荐commit之前执行此命令,查看有什么区别。(HEAD是指向当前分支中最新一次提交的指针)

1
git diff

4. 分支的操作

1. 显示分支

参数-a可以查看当前分支的相关信息,同时显示本地仓库和远程仓库。

1
git branch
2. 创建并切换分支

第二条命令可以实现将远程仓库的feature-D分支获取到本地。

1
2
git checkout -b feature-A
git checkout -b feature-D origin/feature-D

等价于

1
2
git branch feature-A
git checkout feature-A
3. 切换回上一个分支
1
git checkout -
3. 合并分支

先切换到master分支,然后合并feature-A分支。参数的含义是明确记录下本次分支合并。

1
git merge --no-ff feature-A

5. 更改提交

1. 回溯历史版本

本质是切换头指针。

1
git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d
2. 查看当前仓库的操作日志

可以看到各种记录,还能给出哈希值。

1
git reflog
3. 消除冲突

如果有冲突,冲突文件会显示两方面内容,编辑器打开文件并修改。

4. 更改历史

一些小的修改不希望再看到。

1
git rebase -i HEAD~2

6. 与远程仓库交互

1. 添加远程仓库

将GitHub仓库变成本地仓库的远程仓库,远程仓库名称被设置为origin。

1
git remote add origin git@github.com:TimeLovercc/TimeLovercc.github.io.git
2. 推送至远程仓库

参数-u推送同时,将origin仓库的master分支设置为本地仓库当前分支的upstream,将来git pull时候就省去了添加参数。

1
git push -u origin master
3. 从远程仓库获取
1
git clone
4. 获取最新的远程仓库分支
1
git pull origin feature-D