前言
在工作使用到很多常用工具,遇到问题百度/谷歌一下就知道怎么使用,日积月累了很多知识点和使用技能,但是没有整理成专题的知识体系,为了方便以后遇到问题或者空闲阅读的时候当字典查阅。就从这篇开始对 Git 知识体系进行连载。
Git 基础
在学习完本章之后,你应该能够配置并初始化一个仓库(repository)、开始或停止跟踪(track)文件、暂存(stage)或提交(commit)更改。 本章也将向你演示如何配置 Git 来忽略指定的文件和文件模式、如何迅速而简单地撤销错误操作、如何浏览你的项目的历史版本以及不同提交(commits)间的差异、如何向你的远程仓库推送(push)以及如何从你的远程仓库拉取(pull)文件。
获取 Git 仓库
1、在现有目录中初始化仓库
git init
2、克隆现有的仓库
git clone git@github.com:Ucself/GitStudyRepository.git
git clone git@github.com:Ucself/GitStudyRepository.git RepositoryAlias
记录每次更新到仓库
1、文件的状态变化周期

2、检查当前文件状态
git status
3、跟踪新文件
git add README
4、暂存已修改文件
git add CONTRIBUTING.md
5、状态简览
$ git status -s
6、忽略文件
我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,文件 .gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
7、查看已暂存和未暂存的修改
git status
git diff
8、提交更新
git commit -m "Story 182: Fix benchmarks for speed"
9、提交更新,跳过使用暂存区域
给 git commit 加上 -a 选项
git commit -m "Story 182: Fix benchmarks for speed" -a
9、移除文件
git rm PROJECTS.md
rm 'PROJECTS.md'
9、移动文件
git mv README.md README
查看提交历史
1、查看提交历史
git log
git log 的常用选项
| 选项 | 说明 |
|---|---|
| -p | 按补丁格式显示每个更新之间的差异。 |
| –stat | 显示每次更新的文件修改统计信息 |
| –shortstat | 只显示 –stat 中最后的行数修改添加移除统计。 |
| –name-only | 仅在提交信息后显示已修改的文件清单。 |
| –name-status | 显示新增、修改、删除的文件清单。 |
| –abbrev-commit | 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
| –relative-date | 使用较短的相对时间显示(比如,“2 weeks ago”)。 |
| –graph | 显示 ASCII 图形表示的分支合并历史。 |
| –pretty | 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 |
2、限制输出长度
git log -(5)
限制 git log 输出的选项
| 选项 | 说明 |
|---|---|
| -(n) | 仅显示最近的 n 条提交 |
| –since, –after | 仅显示指定时间之后的提交。 |
| –until, –before | 仅显示指定时间之前的提交。 |
| –author | 仅显示指定作者相关的提交。 |
| –committer | 仅显示指定提交者相关的提交。 |
| –grep | 仅显示含指定关键字的提交 |
| -S | 仅显示添加或移除了某个关键字的提交 |
撤消操作
1、你提交后发现忘记了暂存某些需要的修改
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。
2、取消暂存的文件
git reset HEAD CONTRIBUTING.md
3、撤消对文件的修改
git checkout -- CONTRIBUTING.md
远程仓库的使用
1、查看远程仓库
git remote -v
2、添加远程仓库
git remote add pb https://github.com/paulboone/ticgit
3、从远程仓库中抓取与拉取
git fetch [remote-name]
git pull [remote-name]
4、推送到远程仓库
git push [remote-name] [branch-name]
git push origin master
5、查看远程仓库
git remote show [remote-name]
git remote show origin
6、远程仓库的移除与重命名
git remote rename pb paul
git remote rm paul
打标签
1、列出标签
git tag
2、创建标签
附注标签
git tag -a v1.4 -m 'my version 1.4'
轻量标签
git tag v1.4-lw
3、后期打标签
git tag -a v1.2 9fceb02
4、共享标签
git push origin v1.5
git push origin --tags
5、检出标签
git checkout -b [branchname] [tagname]
Git 别名
1、查看所有别名
git alias
2、添加别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
3、移除别名
git config --global --unset alias.acp