2-9
Git change commit message
- 使用 git rebase 將 commit 紀錄重新編輯
git rebase -i bb0c9c2
,i
參數代表使用互動模式,後面的為此次 rebase 的範圍到bb0c9c2
這個 commit- 互動模式會打開 vim 編輯,顯示並可編輯各個 commit 將要做的操作
pick cd82f29 add cat 1
,pick 為不更改- 此次修改訊息需要
reword
此指令,所以將要修改的 commit 改成:reword cd82f29 add cat 1
- 保存後會再開啟另個 vim,就可以編輯該 commit 的訊息囉
- 保存後離開讓 Git 處理後續工作就會看到有新的 commit 產生
React 設定前綴路徑
- 若是用
react-create-app
建立的專案,在 package.json 可以直接設定這行
"homepage": "http://mywebsite.com/relativepath"
- 可以讓打包後的資源存取路徑都加上此設定的路徑:
/favicon.ico
變成/relativepath/favicon.ico
- 若有用 react-router-dom,此項設定也會讓 SPA 應用的路由都有此前綴
- 若想設定資源路徑且不影響 router 的路徑的話就需要改動 webpack 的打包設定囉
刪除遠端分支
git push origin master:anotherMaster
- 上述意旨將本地 master 分支推送到遠端的 anotherMaster 分支上
- 若要刪除遠端分支則只要:
git push origin :anotherMaster
- 將“空”的內容推送上去,算是變相刪除該分支
Nginx 初探
因需求需要修改 Nginx 的配置,紀錄一下相關的知識點
location
符合 server 後, 改搜尋相對應的 location
location ~* .(gif|jpg|jpeg)$ { }
比對請求路徑,可使用完全比對、前綴比對、正則比對
upstream
定義多個 server 並依權重分配請求
upstream backend { server backend.example.com weight=3; server 127.0.0.1:3000 max_fails=5 fail_timeout=60s; server backup1.example.com backup; }
以上述例子來看每 4 個請求中會有 3 個分配到第一個 server
如果 server 連線上有錯誤則請求會分派至下一個 server,直到有成功回應的 server,若都沒有則會分派至有設定
backup
的 server 中。proxy_pass
將請求轉發至指定的位置
location /some/path/ { proxy_pass http://www.example.com/link/; }
上述會將:
/some/path/page.html
轉發至http://www.example.com/link/page.html
若指定位置沒有路徑:如
http://www.example.com
則會轉發至http://www.example.com//some/path/page.html
Vue Component 整線傳遞
- 父層透過 v-bind 或直接定義在元素上的值,能在子層
$props
或$attrs
取得 - 若子層的 props 有定義要接收的值,則父層傳過來的該值會在
$props
- 若沒有在 props 定義,則會在
$attrs
- 子層的
$attrs
,會出現在 render 後的 html 上面,雖不會造成運作上的影響,但呈現上會讓人疑惑,因此可以在子層設置inheritAttrs: false
,不接收$attrs
- 在爺傳父傳子的情境中,在父組件中,將爺組件要傳給子組件值可以用
v-bind="$attrs"
傳下去,可以不用一個個接一個個傳 - 同樣的,父綁定監聽事件在子身上,子可以透過
$listeners
取得所有綁定的事件,也可以使用此方法將爺綁定的監聽事件傳透過父設定v-on="$listener"
傳至子
位元運算子
- 左移 -
a << b
- 將a
的每個bit向左移動b
個bits,空餘的位數以0填滿。 - 有號右移 -
a >> b
- 將a
的每個bit向右移動b
個bits,空餘位數以最高位補滿。 - 以0填充的右移 -
a >>> b
- 將a
的每個bit向右移動b
個bits,空餘的位數以0填滿。
運用:可以用 左移 輕鬆設定 MB、KB 等等的大小,不用再 1 * 1024 * 1024
10 << 20 // 10MB
5 << 10 // 5KB