# Git flow
## 代码获取
获取代码:
```
git clone https://远程仓库链接.git
```
## Git工作流操作
### 1.创建自己的`localhost分支`
在`dev`分支执行
```
git checkout -b localhost/your_name/your_branch_name
```
分支名例子:
localhost/Jmiz/_xxxx
### 2.add `localhost分支`的修改 或者 git commit -a -m "注释" 可省略第三步骤
注意,仅add需要提交的修改,避免提交无用文件。
```
git add yourfileName
```
例:
git add workplace/index.js
### 3.commit `localhost分支`的修改
```
git commit -m 'your commit message'
```
### 4.切换回本地`dev`分支
```
git checkout dev
```
### 5.更新本地`dev`分支 拉取远程dev最新的
```
git fetch origin dev
git rebase origin/dev
```
查看提交日志信息
git log
### 6.再切换回本地自己的`localhost分支`,并且通过merge同步`dev`分支的更新
```
git checkout localhost/your_name/your_branch_name
git merge dev -m 'xxxxxx'
```
eg: git commit -m "hA合并"
merge的时候注意看git的提示,如有冲突要解决。
在进入第7步之前,可通过`git status`查看工作区状态是否正常,如不正常则解决冲突,正常则进入第7步。
### 7.再切换回本地`dev`分支合并本地自己的`localhost分支`修改 建议 再拉取一下 避免这几秒钟内有人提交新的代码 远程最新的代码,毕竟小心为上。
```
git checkout dev
git fetch origin dev
git rebase origin/dev
```
在dev分支merge操作会带上参数`--squash`,这个参数在执行merge操作的时候会合并commit信息,所以**不能**使用`git pull`的方式更新分支,而是用下面命令。
```
git merge --squash localhost/your_name/your_branch_name
```
最后再commit一下,这个commit会合并所有工作分支commit。`dev`分支merge完之后,commit。
```
git commit -m 'commit message for dev或者注释'
```
例:
git commit -m 'new feature for featurejob'
### 8.最后提交到远程dev仓库
在第7步确认没有问题之后,提交到远程dev仓库。
```
git push origin dev
```
合并完之后 一定要记得 push 到远程的仓库;一定要记得 push 到远程的仓库;一定要记得 push 到远程的仓库;
重要事情说三遍,很多朋友老是忘记 push ;没有push 的话相当于你的代码没有真正的保存到远程仓库中。