1. 工作区, 暂存区, 本地仓库, 远程仓库的区别
- git三个区
- 工作区 :
- 已管理
- 新生成
- 暂存区
- 版本库
- 工作区 :
本地仓库: 是用git管理起来的版本库, 包含暂存区和分支,暂存区是管理文件修改的区域, 从暂存区统一提交文件修改到分支
远程仓库: 比如你在github也建立了git仓库, 你要把本地仓库和远程的项目同步起来, 那就成了远程仓库
2. git常用命令
- git init : 对git仓库初始化,可以让git来管理这个目录,实际上个就是建立了.git文件
- git add 文件名: 者必须是一个已经存在的文件, 把该文件添加到暂存区
- git commit -m 备注 : 提交文件到git仓库
- git status : 查看当前git状态
- git diff : 对文件做了什么修改
- git log : 查看提交记录
- git log --pretty=oneline: 查看文字比较简洁的提交记录
- git reset --hard HEAD^ : 回退版本,
- HEAD^ 表示回退到上一个版本
- HEAD^^ 回退到上上个版本
- HEAD~100 回退到之前100个版本
- git reset --hard commitid : 回到指定的版本
- git reflog : 查看各个版本的commitid
- git checkout -- file 撤销工作区的修改 注意是-- , 如果丢失了-, 就相当于切换分支的功能, git checkout 就是将工作区的版本回复到版本库版本
- git rm 或者 rm : 删除文件
- rm 删除的是工作区的文件
- git rm 删除的是版本库的文件
- 若是删除工作区文件误删了, 可以用git checkout -- 文件名 还原
- git remote add origin 远程库地址 : 和远程仓库连接
- git push -u origin master : 发送最新分支到远程仓库
- git clone : 从远程仓库克隆
- git pull ; 更新
- 分支操作
- 查看分支 : git branch
- 创建分支 : git branch 分支名
- 切换分支 : git checkout 分支名
- 分支合并 : git merge 要合并的分支
- 注意 : 切换到master分支,再将分支合并到主分支
- 冲突 : 找到冲突文件,手动修改
- git checkout -b dev : -b表示创建并切换分支
- git checkout dev : 切换到某个分支
- git branch -d dev : 删除分支
- git merge dev : 合并当前分支到master分支, 注意这是快速合并,有些冲突必须手动去解决冲突
- git remote : 查看远程仓库的信息
- git remote -v : 查看更详细的远程仓库信息
- git branch --set-upstream branch-name origin/branch-name : 建立本地分支和远程分支连接
- git 个人信息配置
- git config --global user.email '13864264792@163.com'
- git config --global user.name 'zhangjian'
3. 工作流
默认分支 master:存放稳定的,线上版本 v1 切换到主分支,将v3合并过来 v4
创建dev分支 专门做开发 v2 v3
4.github代码托管
- 注册账号
- 创建仓库
- 本地代码推送至远程仓库
5.gitlab软件
- 自建一个仓库
- 在家上传代码
- 给远程仓库起个别名 git remote add origin 远程仓库地址
- 向远程提交推送代码 git push -u origin 分支
- 在公司电脑上第一次获取代码
- 远程克隆仓库代码 git clone 远程仓库代码
- 别名已经起好了, 提交代码直接git push -u origin 就可以了
- 切换分支
- git checkout 分支名
- 在公司进行开发
- 切换到dev分支 git checkout dev
- 拉代码 git pull origin
- 继续开发
- 提交代码
- 开发完毕,要上线
- 将dev分支合并到master,进行上线
- git checkout master
- git merge dev
- git push origin master
- 将dev分支也推送到远端
- git checkout dev
- git merge master
- git push origin dev
- 将dev分支合并到master,进行上线