Git入门与实践

摘录自《GitHub入门与实践》

初始设置

设置姓名和邮箱地址

git config --global user.name “name”
git config --global user.email "email@example.com"

~/.gitconfig文件中增加如下一行:

1
2
3
[user]
name = name
email = email@example.com

提高命令输出的可读性

git config --global color.ui auto

~/.gitconfig文件中增加如下一行:

1
2
[color]
ui = auto

基本操作

初始化仓库

git init

查看仓库的状态

git status

向暂存区中添加文件

git add README.md

保存仓库的历史记录

git commit

git commit -m "First commit"

在编辑器中记录提交信息的格式如下:

  1. 第一行:用一行文字简述提交的更改内容

  2. 第二行:空行

  3. 第三行以后:记录更改的原因和详细内容

查看提交日志

git log

git log --pretty=short # 只显示第一行简述信息

git log README.md

git log -p # 查看提交所带来的改动

git log -p README.md

查看更改前后的差别

git diff

git diff HEAD # 查看与最新提交内容的差别

分支的操作

显示分支一览表

git branch

创建、切换分支

git checkout -b feature-A # 创建并切换分支feature-A

git checkout master # 切换到master分支

git checkout - # 切换回上一个分支

合并分支

git merge --no-ff feature-A

以图表形式查看分支

git log --graph

更改提交的操作

回溯历史版本

git reset --head 4d0cbf0 # 回溯到4d0cbf0的状态

git reflog # 查看当前仓库执行过的操作的日志

修改提交信息

git commit --amend # 修改上一条提交信息

压缩历史

git rebase -i HEAD~2 # 选定当前分支中包含HEAD(最新提交)在内的两个最新历史记录为对象,进行压缩合并

推送至远程仓库

添加远程仓库

git remote add origin git@github.com:xxx.git # 将xxx.git远程仓库的名称设置为origin(标识符)

推送至远程仓库

git push -u origin master # -u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的上游。

git push -u origin feature-D

从远程仓库获取

获取远程仓库

git clone git@github.com:xxx.git # 默认处于master分支下,同时系统会自动将origin设置成该远程仓库的标识符。即:当前本地仓库的master分支与GitHub端远程仓库(origin)的master分支在内容是完全相同的

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

git checkout -b feature-D origin/feature-D # 将feature-D分支获取至本地仓库

获取最新的远程仓库分支

git pull origin feature-D # 将本地的分支,更新到最新