2015年8月27日 星期四

heroku上要發佈非master的branch的語法

git push heroku yourbranch:master

參見 https://devcenter.heroku.com/articles/git

2015年8月26日 星期三

github上git clone回來的專案,本地修改後才fork之後push到遠端的SOP


  1. git clone XXX
  2. 本地修改完成
  3. 在github上fork XXX為自己的XXX,並取得 clone URL,下稱YYY
  4. git add .
  5. git commit -m '...說明文字'
  6. git remote add master YYY
  7. git push master master

2015年8月25日 星期二

在 ionic / cordova / nodejs 的app中整合FB(或google / twitter / ...)帳號

登入這些帳號,有時只是需要一個 ID ,有時是要使用帳號背後的服務,這樣的需求愈來愈多
  1. [ionic + cordova] 利用 firebase 提供的服務 (重點是它先後試了authWithOAuthRedirect / authWithOAuthPopup ,這樣無論在什麼裝置都可以登入;不過 authWithOAuthRedirect 的錯誤處理目前仍然有問題,有時會死在程式裏面,或許應該等它穩定一點…), 也可看這篇 (較新,使用了 authWithOAuthToken ,只能在行動裝置登入;應先嘗試 authWithOAuthRedirect / authWithOAuthPopup , 才能在 browser 上登入);不使用 firebase 的看這篇 (只能在行動裝置登入)
  2. [nodejs] github 上的 passport 插件,號稱可登入300多種服務
  3. [cordova] 一款只能登入 FB 的插件

2015年8月24日 星期一

git控管下,開發到一半發現出包時的SOP

經常在過了好幾版後才發現,有些修改是正確的應該被留下,但有些是不該留下的

怎麼處理呢?

1.找出新增了不該新增程式的最早版本的前一版;用 git diff 配合 git log 找出這個不含任何錯誤的最近版本
2.用 git stash save -u '???' 建立暫存版本,其中 ??? 是說明文字
3.回到這個最近正確版本,用 git checkout ??? ,其中 ??? 是這個版本的編號
4.建立修正分支,用 git checkout -b hotfix ,其中 hotfix 是分支的名稱,可以取有意義的名字
5.執行 git checkout master 及 git stash pop 取回剛暫存的最新內容
6.在 hotfix 及 master 兩個 branch 之間移動,並進行編輯以縮小兩者之間的不同到最小程度;調整專案內容,執行 git add -A . 及 git commit -m '...' 存入改變
7.發佈 hotfix ; 繼續在 master 上進行開發

參考:
30 天精通 Git 版本控管 (16):善用版本日誌 git reflog 追蹤變更軌跡
30 天精通 Git 版本控管 (13):暫存工作目錄與索引的變更狀態
30 天精通 Git 版本控管 (09):比對檔案與版本差異
30 天精通 Git 版本控管 (08):關於分支的基本觀念與使用方式
30 天精通 Git 版本控管 (04):常用的 Git 版本控管指令

2015年8月21日 星期五

AngularJS框架教學資源

AngularJS 入門教學

"男丁格爾" 的教學文章,我覺得寫得非常好,搭配著早午餐,不知不覺就看完了(驚)

AngularJS 初學者筆記與教學 (一) - 使用方式、Expression、Controller、Module

這是我目前在看的,翻譯自歐萊禮的書,滿口語化的,不錯看


翻譯自官方教學視頻,不錯看

AnnaSu 的IT邦鐵人賽

google出來排名第一的網頁,不過有時有點流水帳的感覺,而且只寫到第27天,有點可惜

還原到上一次 git commit 的狀態,刪去所有新增的檔案

請先詳讀 這篇 ,以免發生憾事(XD)

很高興發現大家都有把 git 玩到爛的經驗(!!),所以解決方案才會這麼好找~~

"由於剛開始 git init 沒有把 .gitignore 寫好,所以 commit 了一堆 *.o 或者是 *.ko 類似的檔案"

媽呀這不就是我經常發生的事嗎(冏>)

http://stackoverflow.com/questions/9529078/how-do-i-use-git-reset-hard-head-to-revert-to-a-previous-commit

簡單一句話就是 git clean -xdf

何時會需要做這件事呢? 大概是把目錄複製到非空的目的地,分不出新舊這樣的白癡情況吧…

用nodejs開發手機應用程式:Ionic/Cordova框架

https://medium.com/@kaumac/cross-platform-apps-using-ionic-electron-angularjs-and-firebase-with-shared-codebase-chapter-1-52859cc6d742

這篇文章讓你秒懂 ionic 的定位--呈現一致介面給所有平台,同時也能了解 electron 和 firebase 的功能

http://hybridap.blogspot.tw/2015/04/hybrid-appsioniccordova.html

cordova 讓 ionic 能存取手機的原生 api ,開發app。此文介紹整個開發的流程;時代進步得實在太快了…只好一直不斷的學習新知

https://nodesource.com/blog/nodejs-v012-iojs-and-the-nodesource-linux-repositories

最新版的 cordova ,在ubuntu 上要安裝 nodejs 0.12 以後的版本,一定要照做,否則系統都給你 0.10版

而如果有舊專案是用 nodejs 0.10 等舊版編譯,在用 0.12 版編譯時可能會出現錯誤,此時可檢查出錯的模組是否要求新版,修改 packages.js 中的版本宣告,記得要重新 npm install 再 npm rebuild ,詳參 http://stackoverflow.com/questions/28486891/uncaught-error-module-did-not-self-register

有些模組因為不是原生的 javascript ,例如 bcrypt ,所以升級很麻煩,建議改用 https://www.npmjs.com/package/bcryptjs