//先要理解这四个概念,这是一个提交代码的流动轨迹:
1.工作区(编辑器)-经过add到2-
2.暂存区 (缓存)- 经过commit3-
3.本地仓库 (本地项目)-经过 push4-
4.远程仓库 (线上项目 )
//拉取远程(这里默认拥有项目权限)
$ git clone <项目地址> //拉取远程分支,这里默认是master分支
$ git checkout -b <分支名称> /origin/<分支名称> //拉取远程分支(非master)到本地,比如要拉取dev_1.0.0的分支到本地 : git checkout -b dev_1.0.0 /origin/dev_1.0.0
//分支之间:切换,添加,删除
$ git branch -a //查看所有分支
$ git checkout <需要切换到的分支名称> //切换到某个分支 比如master(master也是分支,只是一般作为项目的线上发布版本,以它为主干)
$ git branch <新建本地的分支名称> //新建本地的分支
$ git branch -D <删除本地分支的名称> //删除本地的分支
$ git push --set-upstream origin <需要提交到远程的分支名称> //将新建的本地分支提交到远程
$ git push - - delete origin <需要删除的远程分支名称> //删除远程的分支
//合并分支
$ git merge <分支名称A> //把分支A合到当前目录,注意是往当前目录合
//当前分支:提交
$ git add . //把编辑器里修改的内容提交到缓存
$ git status //查看缓存里 将要提交到本地仓库的内容 , 检验编辑器的内容是否都进入了缓存
$ git commit -m ‘提交日志’ //把缓存里的内容提交到本地仓库
$ git push //把本地仓库的内容 提交到远程仓库
$ git log - -stat -3 //查看远程最新提交的日志 的前三条 , 检验本地提交的内容是否提交到了远程
//当前分支:查看
$ git diff //查看 编辑器和缓存 的差异
$ git diff - -cached //查看 缓存和本地仓库 的差异
$ git diff <分支名称> origin/<远程分支名称> //查看 本地仓库和远程仓库 的差异
//当前分支:撤销
$ git checkout . 或者 git reset --hard 或者 git reset //撤销 git add . 的操作
$ git reset --hard origin/master //撤销 git commit -m ‘xxx’的操作
$ git reset --hard HEAD^ 或者 git push -f //撤销 git push的操作