安装Git
官网:https://git-scm.com/
淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/
安装完成后开始菜单出现 Git:
- Git GUI:图形界面 Git
- Git CMD:Windows 风格的命令行
- Git Bash:Unix 与 Linux 风格的命令行,应用最广泛
基本概念
Git 是最先进的分布式版本控制系统,免费开源。
Git 分四个工作区域:工作区、暂存区、仓库区(本地仓库)、远程仓库
Git 的一般工作流程:
- 在工作区添加、修改文件
- 将需要进行版本管理的文件放入暂存区
- 将暂存区文件提交到本地仓库
- 将本地仓库版本推送到远程仓库
因此,git 管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git仓库
设置用户名和邮箱,作为用户标识,Git每次提交都会用到:
git config --global user.name "用户名"
git config --global user.email "邮箱"
创建版本库:
git init #把当前目录变成Git可以管理的仓库
git add <file> #把file添加到仓库暂存区(stage)
git commit -m "<message>" #把暂存区的所有内容提交到当前分支,message是提交说明
Git 添加文件需要两步,可以多次 add 不同文件,一次 commit 提交很多文件。
文件状态:
git status #查看仓库当前的状态
文件状态解释及修改:
- Untracked
未跟踪, 此文件在文件夹中, 但并没有加入到git库
git add > Staged
- Unmodify
文件已经入库, 未修改
修改 > Modifed
、git rm > Untracked
- Modified
文件已修改
git add > Staged
、git checkout > Unmodify
- Staged
暂存状态
git commit > Unmodify
、git reset HEAD filename > Modified
版本回退:
git diff <file> #查看file工作区具体修改了什么内容
git log[ --pretty=oneline] #显示从最近到最远的提交日志,如果日志太长,按q退出
git reset --hard HEAD^ #回退到上一版本
git reset --hard <commit id> #回退到commit id对应的版本,id写前几位即可
git reflog #查看历史命令
在 Git 中,HEAD
表示当前版本,HEAD^
表示上一个版本,HEAD^^
表示上上个版本,HEAD~100
表示往上100个版本。
版本回退后,使用 git log
不再显示当前版本之后的新版本,如果想恢复到新版本,需要用 git reflog
找到新版本的 commit id。
撤销修改删除:
git checkout -- <file> #把file在工作区的修改撤销
git reset HEAD <file> #把file在暂存区的修改撤销,回到工作区
git rm <file> #从暂存区移除file
checkout
是切换分支的命令,加上 --
就是撤销工作区的修改;reset
是撤