[TOC]
## 新人快速上手
啟動本地的開發環境之后,應該如何快速的上手一個項目。
在項目開始之前,`必須` 遵循以下規范:
1. 一品威客 Gitflow 工作流
2. 一品威客 Git 提交規范
3. 一品威客 代碼書寫規范
不符合 `Git 提交規范` 和 `代碼書寫規范` 的 `commit` 都不能提交到遠程倉庫。
### 啟動運行環境
* 我們本地的 `nginx/php/redis` 都用 `docker-compose` 編排,配置文件是 `/data/docker-compose.yml`
* 進入虛擬機后,我們的第一件事情應該是啟動容器 `docker-compose up -d`
### 項目的檢出
* 項目必須檢出到虛擬機的 `/data/webroot` 路徑下。
* 如果大家有精力,還會提供 `/data/scripts/*.sh`,以便一鍵創建并部署本地項目
* 項目的 nginx 必須存放在 `/data/nginx/vhost` 路徑下,我們將提供盡可能多的項目的 nginx 配置文件,并命名為 `*.conf.example`,以便開箱即用
* 如果項目需要使用 `composer` 安裝,我們已經提供了 docker 支持的 composer 命令,直接使用:`composer install --ignore-platform-reqs`
### 代碼不規范或者提交不規范如何重新提交
這是一個典型的代碼提交到遠程倉庫報錯的案例,原因是 PHP 代碼不符合PSR2 規范:

出現這種場景,我們要做的是:
1. 查看我們的提交日志,找到我們出錯的 `commit` 的 `前一次提交` 的 `commit ID`
2. reset 回出錯的 `commit` 的 `前一次提交`
3. 更正后重新提交
#### 步驟1 ~ 2:
~~~
git log --oneline
git reset d97f121
~~~

#### 步驟3:
~~~
git add .
git commit -m "feat(login): 測試代碼規范檢測"
git push
~~~
## 提問的藝術
我們常常在開發過程中遇見這種情況:
- 新人在開發過程中遇見一個代碼報錯,然后馬上跑來問這個怎么辦
- 新人在開發過程中不熟悉新工具的使用,每個命令都要來問這個什么意思
- 新人在開發過程中碰見代碼沖突,然后馬上來問沖突了怎么辦
- 等等等
這種提問的方式不僅會時常打斷別人的編程思路,還無法鍛煉自己獨立解決問題的能力。
所以提問的時候,`必須` 遵循 [提問的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md)。
大致就是:
1. 先搜再問(百度、谷歌、Stack Overflow)
2. 把問題出現的場景和需要解決什么問題描述詳細
3. 禮貌問人
4. 解決后做簡短備注