写在前面:学习git可以看https://git-scm.com/book/zh/v2上的教程,非常详细。先学习本地操作,再学习远程操作。
1.下载并安装git(环境为win10)
git下载链接
按默认步骤安装
2.使用前的配置(打开Git Bash)
![](https://i-blog.csdnimg.cn/blog_migrate/2514c7957a48140c7828f96b37848349.png)
git config --global user.name "<用户名>"
git config --global user.email "<邮箱>"
查看设置:git config --list
3.初始化仓库
进入作为仓库的目录(图中用命令创建了一个目录)
初始化仓库:git init(建好后生成大家都说没事别乱动的隐藏文件./git,用于追踪管理版本迭代)
(git init <文件名>:生成以[文件名]为名的目录并初始化仓库)
4.工作目录(working tree)->暂存区(index)
![](https://i-blog.csdnimg.cn/blog_migrate/d5fa4eed0e1e59b838c661d4f09faad5.png)
5.暂存区(index)->本地仓库(HEAD)(这步操作必须执行过一次add否则作为未被追踪的文件是不能提交的)
![](https://i-blog.csdnimg.cn/blog_migrate/86180e5a80fc32182dd88b35cf2861dc.png)
-m:不弹出用于注释的文本,在""中注释
-a:把工作目录中所有改变的文件提交到本地仓库,通过vi编辑器在弹出来的文本中注释,图中第一行为注释(小心这会把暂存区里的文件覆盖)
-am:-m和-a结合
6.查看状态
git status
![](https://i-blog.csdnimg.cn/blog_migrate/f8ab834e89b8ac7754b6e1bef42335b8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bfe876a514b1771f6fc496f87d47065e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/63f828734d2660283eb1fbf079df6468.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d28e6ddf3c13eccd4be74d40de938970.png)
简洁版:git status -s
7.查看提交历史
查看历史提交:git log
查看历史提交,包括reset操作过的:git reflog
一行简洁版:git log --oneline
查看历史提交中分支及其标签:git log --decorate
以拓扑图方式显示:git log --graph
显示所有分支:git log --all
8.版本对比
比较工作目录与暂存区的差异:git diff
比较暂存区与当前提交的差异:git diff --cached
比较暂存区与历史提交的差异:git diff --cached [版本id]
比较工作目录与当前提交的差异:git diff HEAD
比较工作目录与历史提交的差异:git diff [版本id]
比较两个历史提交:git diff [版本1的id] [版本2的id]
9.版本回退//还没搞懂
git reset
$ git reset -h
usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]or: git reset [-q] [<tree-ish>] [--] <paths>...
or: EXPERIMENTAL: git reset [-q] [--stdin [-z]] [<tree-ish>]
or: git reset --patch [<tree-ish>] [--] [<paths>...]
-q, --quiet be quiet, only report errors
--mixed reset HEAD and index
--soft reset only HEAD
--hard reset HEAD, index and working tree
--merge reset HEAD, index and working tree
--keep reset HEAD but keep local changes
--recurse-submodules[=<reset>]
control recursive updating of submodules
-p, --patch select hunks interactively
-N, --intent-to-add record only the fact that removed paths will be added later
-z EXPERIMENTAL: paths are separated with NUL character
--stdin EXPERIMENTAL: read paths from <stdin>
-----------------------------------------------------------------
10.分支
1)列出所有分支
git branch
2)创建分支(在仓库目录下执行就可以了)(以HEAD制作所指分支来创建的,包括该分支的三个区域里的所有文件)
创建分支:git branch <分支名>
用git log查看可见除master主分支外多了一个分支
3)切换分支(改变HEAD指针的指向)
git checkout <分支名>
新建分支并切换到该分支:git checkout -b <新建分支名>
4)合并分支(将HEAD所指分支与指定分支合并)
git merge <分支名>
5)删除分支
git branch -d <分支名>
------------------------------------------------------------------------未完待续
git rm
git mv
git tag
参考:
git官网教程:https://git-scm.com/book/zh/v2
git命令手册:https://git-scm.com/docs
这个博客总结的命令也不错:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html