Git命令总结
由Linux之父Linus Torvalds开发的Git是一个分布式的版本控制系统 ,也是目前最受欢迎的分布式版本控制软件, 它被用在Linux内核代码的管理中。 具有较强的分之管理功能。总结参照[廖学峰的博客](“http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000“,”廖学峰的博客”)
常用 Git 命令:
* 创建版本库、查看状态等 *
git init
创建一个仓库(或者说把目录变成Git可以管理的仓库)
在git bash命令行中输入:
$ git init
成功后提示:
Initialized empty Git repository in f:/GitRepo/TestRepo/.git/
并且在目录中生成一个叫 .git 隐藏文件夹下边两种做法可以达到同样的效果:
- 安装了tortoiseGit后右键 Git create repository here 命令,然后不去勾选make it bare。
- Git for windows 自带的右键命令 Git Init Here。
git add readme.md
创建一个新文件,使用上述命令将其添加到版本控制
git commit -m “committed a readme.md”
提交到版本控制
-m 添加log或备注
[master (root-commit) 5f7dae4] committed a readme.md 1 file changed, 2 insertions(+) create mode 100644 readme.md
git status
这个命令可以让我们时刻查看仓库当前的状态,告诉我们,哪些文件被修改过了,但还没有被提交
可以使用 git status –help 查看 git 命令的帮助文档
git diff readme.md
顾名思义,查看文件的不同,对比文件版本
git log
查看提交的log日志
加上--pretty=oneline
可以上输出变的更简洁。需要友情提示的是,你看到的一大串类似3628164...882e1e0的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
是时候加一条线了,以上就是最基本的创建库和添加/查看文件的操作。 当修改了readme.md文件后,我们需要再次使用 git add xxx.md 和 git commit -m “xxx”, 命令来提交。 add和commit:可以在多次add到版本控制系统后再统一commit,一次commit就是相当于一次代码的快照,可以在未来某个时间从这些committed的快照中恢复。
* 设置全局变量或属性 *
设置名字和邮箱
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
git xxx(待续)
* 回退版本库 *
* git reset –hard HEAD^(或commit_id) *
回退到之前的版本,HEAD是当前的版本,HEAD^, HEAD^^, HEAD~100 等。
由于是reset,所以并不是将被还原的版本都提升到当前版本,而是直接回退到那个版本,跨过的版本会不可见
屏幕输出:
HEAD is now at 5f7dae4 committed a readme.md
* git reflog *
打印所有的命令执行记录
输出结果:
$ git reflog
09329af HEAD@{0}: reset: moving to 09329af41bb
5f7dae4 HEAD@{1}: reset: moving to HEAD^
09329af HEAD@{2}: commit: add distributed
5f7dae4 HEAD@{3}: commit (initial): committed a readme.md* git xxx(待续) *