开始
Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从小到大的项目版本管理。
在 Git 中,文件一共有三种状态,分别是:
- 已修改(modified):表示修改了文件,但是还没保存到数据库中。
- 已暂存(staged):表示对一个已修改文件的当前版本做了标记,并使之包含在下次提交的快照中。
- 已提交(committed):表示数据已经安全的保存在本地数据库中。
安装
经过上面链接安装完成后,可以使用如下命令查看当前 Git 版本:
git --version
配置
当我们首次成功安装完成后,需要对 Git 进行如下配置:
git config --global user.name xxx //把xxx替换成你的英文名字随便什么都行
git config --global user.email yyy //把yyy替换成你的邮箱
git config --global push.default matching
git config --global core.quotepath false
git config --global core.editor "vim" //使用vim编辑提交信息
注意:一定要进行上述配置,否则后面会出问题!
配置完成后,我们可以使用如下命令来检查所配置的列表信息:
git config --list
也可以使用git config <verb>
形式来检查某一项的配置,例如:
git config user.name
git config user.email
Git帮助
如果我们想要获取 Git 的相关帮助,可以使用如下命令:
git
git help
git help <verb>
git help config //获取config命令的手册
获取仓库
在 Git 中,有两种方式可以获取仓库。
本地初始化项目
使用如下命令进行项目初始化:
git init
// or
git init 仓库名
初始化项目后,该命令会创建一个名为.git的子目录,该目录是隐藏文件。
克隆已有的仓库
git clone [url]
git clone [url] 自定义仓库名
# 例如
git clone git@github.com:LqZww/vue-notes.git demo
检查当前文件的状态
如下命令可以查看文件当前是处于什么状态的:
git status
下列命令可以更简洁的方式查看更改:
git status -s
# or
git status --short
如果git status命令的输出对于你来说过于模糊,你想知道具体修改了什么地方,可以使用git diff命令。
忽略文件
有时候我们有些文件无需进行Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
在这种情况下,我们可以创建一个名为.gitignore的文件,列出要忽略的文件的模式。
.gitignore文件的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配(glob模式是指shell所使用的简化了的正则表达式)。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
添加并提交
将所有修改添加至暂存区:
git add .
提交版本:
git commit -m "描述"
git commit -v //进入vim模式
跳过使用暂存区域:
git commit -a -m '描述'
只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
查看历史提交
使用如下命令来查看历史版本记录:
git log
不传入任何参数的默认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面!
git log -p //可以查看添加的详细内容
git log --oneline //会将每个提交放在一行显示,在浏览大量的提交时非常有用
撤销操作
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有 --amend 选项的提交命令尝试重新提交:
git commit --amend
回退到指定的历史版本:
git checkout 版本号
撤回上一个版本:
git checkout -
标签
列出所有标签:
git tag
git tag -a 标签名 -m "备注"
为指定版本添加标签:
git tag -a 标签名 -m "备注" 版本号
查看某个标签的详细信息:
git show 标签名
回到至标签所在的提交:
git checkout 标签名
显示所有记录:
git log --oneline --all
将tag提交到远程:
git push --tags
分支
创建分支:
git branch 分支名
切换分支:
git checkout 分支名
图示全部历史记录:
git log --all --graph
创建并切换至分支:
git checkout -b 分支名
合并分支:
git merge 分支名
回退版本
回退到xxxx版本:
git reset xxxx
强制回退到xxxx版本:
git reset --hard xxxx
远程仓库
添加远程仓库:
git remote add 远程名称 远程地址
列出所有远程仓库:
git remote
上传代码:
git push -u 远程名 分支名
获取远程更新:
git pull
一把梭
假设当前为 master 分支,我们需要创建一个新分支,并将 master 分支内容更新到新分支上,可以做以下操作:
git checkout -b 分支名1
git status
git add .
git commit -v
git push origin 分支名1
git checkout master
git merge 分支名1 // 将分支名1的代码合并到master
git push origin master
参考、学习链接
最后我们再来看看下面这张 Git常用命令速查表 :