1. git的四个工作区域
Git本地有四个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Reponsitory或Git Directory)、git仓库(Remote Directory)
Workspace:工作区,就是你平时存放项目代码的地方
Index/Stage:暂存区,用于临时存放你的改动,事实上他只是一个文件,保存即将提交到文件列表信息
Repository:仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本
Remote:远程仓库
2. 前言
git reset 命令用于回退到指定版本,是 git 的 “后悔药”
如果创建了一个新的文件,这个文件是未跟踪的状态,那么使用 reset 回退版本时,这个新文件不会受到影响
如果创建了一个新的文件,并且这个文件已被跟踪(已被提交到暂存区),那么使用 reset 回退版本时,这个新文件就会被删除
3. 回退类型
指针移动的时候,暂存区,工作区都不动。重置 git commit
git reset --soft [commit id]
指针移动的同时,重置暂存区,但是工作区不动。重置 git commit、git add
git reset --mixed [commit id]
指针移动的同时,重置暂存区和工作区。重置 git commit、git add 和工作副本的修改
git reset --hard [commit id]]
使用示例: 回退到指定版本
# 命令格式 git reset --hard <commit id> # commit id 使用完整的值或前 7 位都可以 git reset --hard 75e24ff git reset --hard 75e24ff4f6da07bfd300fc6b4249914b9958634c
4、git常用命令
git分支常用命令
git branch -v //查看分支
git branch 新分支名 //创建分支
git branch -d branchname //删除分支
git branch -m oldbranchname newbranchname //修改分支 git branch -r //查看所有远程分支 git checkout branchname //切换分支
git merge branchname //合并分支
git checkout操作
git checkout dev 切换到本地dev分支 git checkout -b dev 建立一个新的本地分支dev git checkout --track origin/dev 切换到远程dev分支
git commit操作
git commit -am "init" 提交并加注释 git commit -a 提交当前repos的所有改变 git commit -v 当你用-v参数的时候可以看commit的差异 git commit -m "This is the mesage describing the commit" 添加commit信息 git commit -m "remove" 移除文件(从git中删除)
git remote show 查看远程库
git rm 文件名(包括路径) 从git中删除指定文件
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git status 查看当前状态
git remote show origin 显示远程库origin里的资源
git push origin master:develop 将本地库与服务器上的库进行关联
git merge origin/dev 将分支dev与当前分支进行合并
5、初始化版本库,并提交到远程服务端
mkdir webapp cd webapp git init 本地初始化 touch README git add README 添加文件 git commit -m "first commit" git remote add origin git@github.com:daixu/webapp.git
6、切换版本
1、查看版本信息 git reflog 2、切换版本 git reset --hard 版本号
7、git合并分支
创建分支
git branch bug-fix
切换分支
git checkout bug-fix
在当前分支修改文件
vim filename
在当前分支提交
git commit -m "bug-fix first commit"
切换到主分支
git checkout master
合并分支
git merge bug-fix