星期日, 5月 29, 2016

Git 使用心得及記錄

0. 本地Commit有誤時,如何處理?
=>用reset
解法:
1. git reset --mixed (預設),  repo的commit會取消,目前workspace己修改的檔案內容會保留,(就是好像退回到連add都沒做的狀態,好像什麼事都沒發生)

git reset HEAD file ( which by default is using the --mixed flag) is different in that in the case where the file is already in the repo, it replaces the index version of the file with the one from repo (HEAD), effectively unstaging the modifications to it.


2. git reset --soft, repo的commit會取消,stage中會保持該取消的commit中的變更資料,(就是好像退回到原add的動作)。
3. git reset --hard, repo的commit會取消,會把workspace目前修改的檔案刪除,worksapce中的檔案會回到前一次commit的內容,所有這次改的資料都會不見。


可參考影片: https://www.youtube.com/watch?v=gVByWjwetVc

1. 如果不小心把本地端檔案殺掉了,但是reposity之前有儲存,要如何救回來?很簡單,就再從reposity checkout就好了。

2. Check out 會不會把目前目錄下的資料全部清除?
 答案是會全把舊的資料全殺光,所以checkout之前要記得先commit或備份,以免損失慘重。

3. 把檔案用git add加到stage後,在workspace再修改,此時再commit時,檔案會用那個版本的?

Ans: 檔案會用staged的版本。workspace修改的版本或資料並不會commit進去。
(If I modify a file that is added, and retry the commit, the changes aren't recognized, so the commit will fail again.)

解決方法1: 再用git add重做一次就好
解決方法2: 先用預設 reset的命令(--mixed),取消stage的動作(此時不會覆蓋workspace的版本),再重新commit就好。

注意: 千萬不要亂下git reset -hard,會把workspace目前修改的檔案刪除 

https://stackoverflow.com/questions/27776588/modifying-a-file-after-git-add

http://lib.csdn.net/article/git/28621



星期三, 5月 25, 2016

docker install on ubuntu 14.04


  1. 根據install guilde (https://docs.docker.com/linux/)安裝後

$ curl -fsSL https://get.docker.com/ | sh
要記得重開機,之後執行畫面如下:


表示執行成功。

2.下載container with nodejs and ffmpeg

docker pull dkarchmervue/fluent-ffmpeg
下載container, 由於docker的檔案架構是一層一層建上去的,所以會一層一層下載後建立image。如果有多個container引用相同image來建置,則可共用相同來源的layer,節省儲存空間。



docker run --rm -ti -v ${PWD}:/work dkarchmervue/fluent-ffmpeg node your-nodejs-script.js

參數說明:
--rm: container結束後,就移除所有container內的資料。 (預設情況下,container結束後,資料會存在container中,container預設空間為10G)
--ti: 產生虛擬tty,跟container互動
-v: 資料目錄映設,將主機的目錄與container中的mount point映射,此例為${PWD}目前工作目錄映射到container中的/work目錄,container中任何資料寫入/work目錄,實際上會寫回主機目前工作目錄。

$ docker run -p 127.0.0.1:80:8080 ubuntu bash

This binds port 8080 of the container to port 80 on 127.0.0.1 of the host machine. The Docker User Guide explains in detail how to manipulate ports in Docker.


VS Code的環境設定


要讓VS Code很好用,建議先進行下列環境設定

Node.js Applications with VS Code
https://code.visualstudio.com/Docs/runtimes/nodejs

把jsconfig.json及typescript安裝好後,就比較好用了。