GitFlow
- GitFlow 是团队开发的一种最佳实践,将代码划分为以下几个分支
-
Master 主分支。上面只保存正式发布的版本
-
Hotfix 线上代码 Bug 修复分支。开发完后需要合并回Master和Develop分支,同时在Master上打一个tag
-
Feather 功能分支。当开发某个功能时,创建一个单独的分支,开发完毕后再合并到 dev 分支
-
Release 分支。待发布分支,Release分支基于Develop分支创建,在这个Release分支上测试,修改Bug
-
Develop 开发分支。开发者都在这个分支上提交代码
初始配置
第一次使用Git的时候,会要求我们配置用户名和邮箱,用于表示开发者的信息
1.初始邮箱地址
用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。
每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的
git config --global user.name “username”
git config --global user.email “email”
2.查看用户名和邮箱
git config user.name
git config user.age
3.源地址查看修改
npm get registry
查看镜像源
npm config set registry http://www.npmjs.org
切换官方源
npm config set registry http://registry.npm.taobao.org
切换淘宝源
git基本操作
git基本操作命令
git init
-
版本状态查看
-
红色说明文件位于工作区
-
绿色说明文件位于暂存区
-
没有体现,说明位于版本区域
git status
git add . | git add * | git add -A | git add 文件名
-
将文件加到暂存区
-
单个文件添加
- add . 方式
- -A方式
git commit -m ‘注释信息’’
- 提交到仓库,m是message的简写
注释提交规范
-
chore: 项目初始化
-
feat/Added: 增加新功能
-
fix/Fixed: 改bug
-
style: 样式修改
-
test: 部署测试环境
-
docs:文档(documentation)
git restore
- 可以丢弃工作区的改动
比如我改动了工作区的代码
然后我又通过restore放弃了修改,此时还是之前的版本
git restore --staged
-
可以取消暂存
-
新增文件
git diff
- 查看工作区与暂存区的差异(不显示删除或新增文件) 显示做了哪些修改
-
新增文件,不能显示
-
diff解读
git diff --cached
- 查看暂存区与仓库的差异
历史版本回滚
git log
- 默认不用任何参数的话,git log
会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1
校验和、作者的名字 和 电子邮件地址、提交时间,最后缩进一个段落显示提交说明。
git log --oneline
如果内容偏多, 需要使用方向键上下滚动, 按 q 退出
git log 命令有一个选项,可以用来更改仓库信息的显示方式。该选项为 --oneline.
-
每行显示一个 commit
-
显示 commit 的 SHA 的前 7 个字符
-
显示 commit 的消息
根据版本号进行回退
版本回退,只是本地的。不会影响git库中的内容
进行版本回退时,不需要使用完整的哈希字符串,前七位即可
版本切换之前,要提交当前的代码状态到仓库
git reset --hard xxxxxx7
git reflog
如果在回退以后又想再次回到之前的版本,git reflog
可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git
log则不能察看已经删除了的commit记录
- git log 和git log --oneline已经读取不到
其它回滚
git reset --hard HEAD^
- 回滚到上个版本
git reset --hard HEAD^^
- 回滚到上上个版本
git reset --hard HEAD~100
- 回滚到100个版本之前
配件忽略文件 .gitignore
仓库中没有提交该文件
1.忽略一个文件
2.忽略全部以什么结尾的文件
3.忽略一个文件夹
仓库中已经提交该文件
1.已经加入到版本库,版本库删除该文件
没有文件夹的状态是因为我这里创建的是一个空的文件夹
2.然后在.gitignore 中配置忽略
文件夹的状态也要忽略,因为上面的实验文件夹是空的
3.add 和 commit 提交即可
)]
git分支
分支是 Git 重要的功能特性之一,开发人员可以在主开发线的基础上分离出新的开发线
git branch 分支名
- 创建一个分支
git branch
- 查看分支
git checkout -b 分支名
-
切换并且创建分支
-
注意: 每次在切换分支前 提交一下当前分支
git checkout 分支名
-
注意: 每次在切换分支前 提交一下当前分支
-
切换分支
git merge 分支名
-
合并分支
-
一般是在dev分支去合并其他子分支上的代码
解决冲突
-
当多个分支修改同一个文件后,合并分支的时候就会产生冲突。冲突的解决非常简单,将内容修改为最终想要的结果,然后继续执行
git add 与 git commit 就可以了。 -
切记修改完冲突之后要git add 和 git commit
git branch -d 分支名
github
GitHub 是一个 Git 仓库管理网站。可以创建远程中心仓库,为多人合作开发提供便利
基础使用
本地有仓库
1.注册激活账号
2.创建github中心仓库
3.获取仓库地址
4.git remote add 别名 HTTPS/SSH
- 本地配置远程仓库地址
5.git status
- 本地提交(提交前确定代码已经提交到本地仓库)
6.git push -u origin master
- 第一次推的时候需要加u,u表示保存这个关联,以后直接push就行
- 推送之前检查git status
7.检查远程仓库
8.将本地仓库某个分支推送到仓库
-
方法同主分支推送
-
注意推送之前检查git status
-
查看远程仓库,已经多了rolls分支
本地没有仓库
1.注册并激活账号
2.克隆仓库
3.进入克隆好的仓库
- 克隆在文件夹里面,一定要进入仓库
4.增加和修改代码提交本地仓库
5.git push
6.检查远程仓库同步状态
git fetch origin rolls:rolls
- 拉取本地没有的分支
配置SSH
1.ssh-keygen -t rsa -C email
-
创建密匙
-
配置SSH,任意位置打开输入代码邮箱,
2.然后三次回车
3.找地址
4.id_rsa.pub
5.将.pub配置到github中
- 更改为txt
06.验证SSH绑定成功\
- 不再需要密码
07-git clone url(SSH)
- 输入yes
常见提示
$ git添加。
警告:LF将被a.js中的CRLF替换。
该文件将在您的工作目录中具有其原始行结尾