什么是Git 工作区、暂存区和版本库
工作区:本地仓库使用的文件夹(不包括.git文件)
暂存区:存放在 .git 目录下的 index 文件里,所以我们把暂存区有时也叫作索引(index)。
版本库:使用 git init 初始化后生成的 .git文件,是 Git 的版本库不算工作区。
git操作流程
一、基本操作流程
1) 初始化仓库
执行 git init 指令给本地仓库初始化
执行完后可以看见文件夹多了一个隐藏文件
2) 给工作区创建文件并查询文件状态
执行 echo 指令创建一个文件
他会生成一个内容为123的 text.txt 的文档
执行 git status 命令查看文件状态
执行完会看见如下状态
他现在的的状态是红色处于未跟踪状态
!!!注:为跟踪过的状态无法保存提交
3)把文件添加到暂存区并再次查看文件状态
执行 git add text.txt 命令来暂存 text.txt 文件
执行 git status 命令查看文件状态
执行完会看见如下状态
状态成为绿色的即为跟踪成功
4)把文件提交到版本库
!!!注:仓库第一次提交的时候要先执行 git config --list 这个命令看一下是否配置好用户名和用户邮箱否则无法提交成功。
执行 git commit -m “注释内容” 命令进行版本提交
出现这个说明提交成功
5)基本流程结束
二、git命令大全
1. git add 跟踪文件
命令种类
git add 文件名 // 指定某一个文件跟踪
git add .
// 这个命令会监控工作区的状态树,会把工作区的所有变化提交到暂存区,包括修改内容的文件(modified)和新文件(new),但是不包括被删除的文件
git add -u
// (git add -all缩写)是上面两个命令的集合,会提交所有的文件包括修改新建和删除的
2. git commit 提交命令
命令种类
!!!注:必须是暂存过最少一次的文件才可以使用 -a 跳过暂存区直接提交
git commit // 进入vim编辑器书写注释
git commit -m “版本注释” // 不进入vim编辑器,在 -m 后面直接写注释
git commit -a // 跳过暂存区,直接进入vim编辑器书写注释
git commit -a -m “版本注释” // 跳过暂存区,不进入vim编辑器,在 -m 后面直接写注释
3. 分支命令
创建分支
git branch 分支名 // 创建分支
删除分支
!!!注:删除分支的时候先查看一下分支是否合并
!!!注:使用大D删除的时候一定要再三考虑因为他是强制删除分支的没有合并的分支删除后会丢失整条分支的记录
git branch -d 分支名 // 删除分支 git branch -D 分支名 // 强制删除分支
查看分支信息
git branch -v // 查看每一个分支的最后一次提交 git branch name 指向的分支Hash // 新建一个分支并且使分支指向对应的提交对象 git branch --merged // 查看哪些分支已经合并到当前分支 // 在这个列表中分支名字前没有 * 号的分支通常可以使用 // git branch -d 删除掉; git branch --merged // 查看所有包含未合并工作的分支 // 尝试使用 git branch -d 命令删除在这个列表中的分支时会失败。 // 如果真的想要删除分支并丢掉那些工作,可以使用 -D 选项强制删 // 除它。
切换分支
!!!注:在切换分支的时候一定要先看一下文件的状态确保没有被修改过的文件才能切换分支否则会污染分支
git checkout 分支名 // 切换分支
合并分支
git merge 分支名 // 合并分支
Git 存储
!!!注:存储完后要先看一下文件的状态确保没有被修改过的文件
git stash // 存储
git stash list // 查看存储
git stash apply // 应用最近一次存储内容
git stash apply 存储名 // 指定的存储内容
git stash pop // 应用最近一次存储内容然后立即从栈上扔掉它
git stash drop 存储名 // 加上将要移除的储藏的名字来移除它
配别名
!!!如果需要配别名的原命令有空格或横线需要用引号包起来
// 格式
git config --global alias.别名 命令
// 例子
git config --global alias.ci commit // 使用comit的时候直接写 git ci 就可以
打 tag
git tag // 列出所有版本
git tag 版本名 // 新增一个版本
git show 版本名 // 查看指定的版本内容
总结
今天学了不少新的 git 命令明白了很多注意事项,尤其是git的分支功能和分支需要注意的事项
!!!重中之重 没事多看看文件状态以免污染分支