概念 - 三个区域
- 工作区:处理工作的区域。
- 暂存区:已完成的工作的临时存放区域,等待被提交。
- Git仓库:最终的存放区域。
概念 - 三种状态
- 已修改 modified:表示修改了文件,但还没将修改的结果放到暂存区。
- 已暂存 staged:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中。
- 已提交 committed:表示文件已经安全地保存在本地的Git仓库中。
概念 - 工作流程
- 在工作区中修改文件
- 将你想要下次提交的更改进行暂存
- 提交更新,找到暂存区的文件,将其永久性存储到Git仓库
安装
在Windows中下载并安装Git,直接官网下载exe文件执行安装即可。
官网下载链接地址:
https://git-scm.com/download
配置 - 初始设置
在安装Git后,我们需要通过如下命令来配置自己的用户名和邮件地址:
# 配置用户信息
git config --global user.name '你的名字'
git config --global user.email '你绑定的邮箱'这里的信息在后面版本控制中有用,比如能直观看到是谁提交的。
配置 - 参数解释
上面命令中带有:--global
此选项代表作用全局生效,也就是说,以后每个项目,如果不单独设置的话,默认就会使用上面的名称和邮箱配置信息了。
配置 - 全局文件
Git的全局配置文件默认是放在了 : C:/Users/用户名文件夹/.gitconfig文件中。
因为是文本文件,所以我们同样可以通过记事本打开进行查看和编辑。
配置 - 查看配置
同样还是 git config 命令,具体如下:
# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email配置 - 查看帮助
查看帮助手册的命令是:git help
# 要想打开git config命令的帮助手册
git help config此手册和Linux man类似,无需联网,为软件安装自带手册。
如果不想一次性看那么多信息,也可以使用 -h 参数查看简短信息,示例如下:
# 想要获取git config 命令的快速参考
git config -h常用命令 - 基本命令
初始化工程
git init查看目前的状态(untracked未跟踪 staged暂存 modified已修改 unmodified未修改
git status将工作区的所有代码添加到暂存区(.代表当前目录下所有文件)(add 根据.gitignore文件规则提交文件)
git add .将工作区的指定文件添加到暂存区(添加多个文件,以空格隔开)
git add 文件名提交文件到仓库(-m "提交内容的说明")
git commit -m "提交内容的说明"查看版本库中有哪些版本(多行记录一次显示不完,可以按q键退出查看)
git log查看差异化不同
git diff创建 并切换 到 新创建的分支
git checkout -b 分支名字查看所有分支
git branch删除分支
git branch -d 分支名字推送至远程仓库
git push origin 分支名字常用命令 - 分支与合并
查看所有分支
git branch?查看分支详情
git branch -v?切换到指定的分支
git checkout 分支名?创建并切换到新创建的分支
git checkout -b 分支名?重命名(修改)指定分支名
git branch -m 旧分支名 新分支名?删除指定的分支(该分支没有新的提交记录,并且需要先切换到其他分支才能对其进行删除操作)
git branch -d 分支名?强制删除指定的分支
git branch -D 分支名如果想要恢复有过提交记录的分支,需要用git reflog查找该分支指向的commitId,再根据commitId创建新的分支
git branch 分支名 commitId?将指定的分支合并到当前分支(若遇到合并冲突,待解决冲突后使用git add表示冲突已解决,再用git commit进行提交)
git merge 分支名?将当前工作暂存(常用于pull有冲突的时候)
git stash?列出所有的暂存状态(暂存记录)
git stash list?从暂存区之中进行恢复(只恢复到工作区,并不删除暂存区内容)
git stash apply?从暂存区中恢复且将stash内容删除(这里注意和apply的区别)
git stash pop?从暂存区之中删除
git stash drop?撤销与回滚 - 本地仓库
有时候可能会做错点什么,后悔了想撤销,此时还未执行 git push,分以下情况:
一、文件虽然被修改了,但还未执行git add操作:
# 撤销 指定 的文件
git checkout 文件名
# 撤销 全部 文件
git checkout .二、已经执行了git add操作,但还没执行git commit(只是暂存,没有提交)操作:
# 取消 指定文件 的暂存
# 方法 1
git reset HEAD 文件名
# 方法 2
git rm –-cached 文件名三、被修改的文件已经执行了git add和git commit操作后(已经提交到本地仓库)
# 回退 到 上一个版本
git reset HEAD~1
# 回退 到 指定的某个版本
git reset 版本号撤销与回滚 - 远程仓库
git push之后,也就是推送到了远程仓库后,我们基本要做的只有回滚了。
基本分为如下四种情况:
1、回滚 指定文件 到 指定版本
# 查看指定文件的历史版本 和 commitID
$ git log 文件名
# 回滚到指定 commitID
$ git checkout commitID 文件名2、回滚 到 上一个版本
# 方法 1 使用reset(将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录)
git reset --hard HEAD^
# 方法 2 使用revert (放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在)
git revert HEAD3、回滚 到 某次提交
# 找到要回滚的 commitID
git log
# 按照 指定的commitID 进行回滚
# 方法 1
git revert commitID
# 方法 2
git reset --hard commitID4、回滚 到 前几次提交之前
# 回退到 前num次 提交之前
git reset --hard HEAD~num
# eg.回滚到前5次提交之前
git reset --hard HEAD~5
