2012年12月24日 星期一
[Linux]Ubuntu Desktop(桌機版)安裝教學
想要入門Linux但又猶豫的人可以先看看這篇
如果未安裝VMware Player請點擊,如果不知道VMware Player是幹麻的請先點擊上面的連結
如果是要灌雙系統的話,此教學比較不適合您,網路上有很多寫的很好的教學文可以參考看看
[linux]Linux入門,介紹ubuntu desktop(桌機版)
我是個Linux的初學者,最近開始想要玩玩Linux,這篇是我查很多資料彙總起來的大意,也是
寫給打算入門Linux的新手來看看,算是個導引~
可以說完全沒什麼深度,但非常地白話淺顯易懂XD
如果有些名詞或觀點解釋錯誤麻煩各位前輩指正:)
寫給打算入門Linux的新手來看看,算是個導引~
可以說完全沒什麼深度,但非常地白話淺顯易懂XD
如果有些名詞或觀點解釋錯誤麻煩各位前輩指正:)
2012年12月20日 星期四
[git][merge]實際操作,合併與他人做的專案
我是個初學者,但我一直連最簡單的合併都做不好,一直以來我有個問題是想要將同事寫的與我寫的合併在一起。其實這個問題我在網路上問了兩次,結果兩次都領悟不出來網友說的merge觀念...慚愧..,終於...今天我像是被電到一樣突然想通了,其實道理也是很簡單--branch的parent一定要同一個(分支要由同一條主線分出來就對了!),此方法適合與未使用git的人合併專案。
2012年12月13日 星期四
[php][正則]陣列取代,範例:將關鍵字標示紅色
$p_name='科科P神奇超長外套保暖s襪綠油p油披風r';
echo '查詢字串 : '.$p_name.'</br>';
$search_array=array('長外套','綠','披','p','r');
$patterns = array();
$patterns = '/('.implode('|',$search_array).')/i';
echo '關鍵字 : '.$patterns.'</br>';
$res = preg_replace($patterns,"<span style='color:red;'>\\1</span>",$p_name);
echo '結果 : '.$res;
顯示結果:
----
[mysql][json]mysql 組 json 字串
CONCAT('[[',GROUP_CONCAT(z.type ORDER BY z.type ASC),'],\"',a.p_name,'\"]') as type_name
↓ 長的像這個樣子
[[0,1,3],"綠洲-v320LS"]
↓ 長的像這個樣子
[[0,1,3],"綠洲-v320LS"]
2012年12月11日 星期二
[javascript][date]日期
var today = new Date();
today_year = today.getFullYear(); //getYear()的定義原本就是年份減去1900,要改用這個today_month = today.getMonth()+1; //月是從0開始
today_date = today.getDate();
today_day = today.getDay(); //它是星期
alert(today_year+'年'+today_month+'月'+today_date+'日'+'星期'+today_day);
javascript沒有format寫法(new Date("yyyy-MM-dd HH:mm"))
4564
today_year = today.getFullYear(); //getYear()的定義原本就是年份減去1900,要改用這個today_month = today.getMonth()+1; //月是從0開始
today_date = today.getDate();
today_day = today.getDay(); //它是星期
alert(today_year+'年'+today_month+'月'+today_date+'日'+'星期'+today_day);
javascript沒有format寫法(new Date("yyyy-MM-dd HH:mm"))
4564
2012年12月10日 星期一
[mysql]日期相減、日期之間 、now()
目前時間如果在開始與結束時間之間:
now() BETWEEN start_time AND end_time
註:
除了 now() 函數能獲得當前的日期時間外,MySQL 中還有下面的函數:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
這些日期時間函數,都等同於 now()。鑒於 now() 函數簡短易記,建議總是使用 now() 來替代上面列出的函數。
select sysdate(), sleep(3), sysdate();
可以看到,雖然中途 sleep 3 秒,但 now() 函數兩次的時間值是相同的; sysdate() 函數兩次得到的時間值相差 3 秒。MySQL Manual 中是這樣描述 sysdate() 的:Return the time at which the function executes。
來源:http://fxc86.blog.hexun.com.tw/44003036_d.html
now() BETWEEN start_time AND end_time
註:
除了 now() 函數能獲得當前的日期時間外,MySQL 中還有下面的函數:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
這些日期時間函數,都等同於 now()。鑒於 now() 函數簡短易記,建議總是使用 now() 來替代上面列出的函數。
select sysdate(), sleep(3), sysdate();
可以看到,雖然中途 sleep 3 秒,但 now() 函數兩次的時間值是相同的; sysdate() 函數兩次得到的時間值相差 3 秒。MySQL Manual 中是這樣描述 sysdate() 的:Return the time at which the function executes。
來源:http://fxc86.blog.hexun.com.tw/44003036_d.html
[git][merge]實際操作,合併流程,包含處理conflict
branch介紹:
*master是主支 (預設branch停在這條)
develop是master的分支,所以檔案與master一模一樣
測試檔案:
test.php
test2.php
第一種情況:master都沒修改過
- git checkout develop 切到develop
- 修改test、test2及新增test3 做些修改
- git add . 新增進stage
- git commit -m "develop commit" commit
- git checkout master 切到master
- git merge develop 合併develop
- 這時候master的資料就和develop一模一樣了 ^^
- git branch -d develop 刪除develop
- git checkout -b develop 新增剛合併完的master分支,所以這條develop是最新的資料,並且將線切換過去了,因為(checkout語法)
- 接下來可以繼續以develop 開發,重覆著2~9的動作
第二種情況:master被修改過(合併就會出現conflict)
檔案一樣先回到最上面的假設
- 修改test test2 新增了test3 test4 (目前是在master)
- git add . 新增進stage
- git commit -m "master commit" commit
- git checkout develop 切到develop
- 修改了test test2 新增了test3 不增加test4
- git add . 新增進stage
- git commit -m "develop commit" commit
- git checkout master 切到master準備合併
- git merge develop 因為master與develop檔案不同(不同的狀況與情況一不一樣)所以會產生conflict
- 因為master有develop沒有的test4,所以test4沒有conflict,但其餘三個有,各別開檔案進去裡面修改
- git add . 將修改完的檔案add進stage
- git commit -m "merge done" commit
- git branch -d develop 刪除develop,目的是建一個最新版的develop
- git checkout -b develop 新增develop並且將線切到develop(其實這一行等於git branch develop + git checkout develop)
- 繼續開發你的develop
情況二的9. (conflict)
注意 : 如果只有自己一個人開發的話,建議主線就是master,並且每當合併完後,新增一條develop繼續開發(master那邊不要動),否則master那邊做一點,又跑到develop那做一點,合併時會產生情況2的conflict問題,處理起來也挺麻煩的。每當功能完成後要合併時,合併完後,一樣master不要理它,開一條develop繼續做,一直重覆這個循環開發就對了^^
2012年12月9日 星期日
[php][mysql]取得最後一筆INSERT(新增)的ID
mysql sql語法裡:LAST_INSERT_ID()
PHP:
$pr_id= mysql_insert_id ();
PDO:
$pr_id= $edm->lastInsertId();
$pr_id= mysql_insert_id ();
PDO:
$pr_id= $edm->lastInsertId();
[git][reset] 回覆上一個動作
git reset HEAD^ --soft 取消剛剛的commit但保留修改過的檔案
- 修改一份.php檔加上隨意字串,例如:"QQQ"
- git commit -a -m "edited"
- 我後悔了,我要回復上一動,但又希望剛剛輸入的"QQQ"還在
git reset HEAD^ --soft - git log 查看commit紀錄,剛剛commit的真的不見了,且"QQQ"也還在
git reset HEAD^ --hard 取消剛剛的 commit,回到再上一次 commit的 乾淨狀態
兩種情形:
- 接續剛剛上面的情形,假如已經git reset HEAD^ --soft後,但又後悔不想保留"QQQ":
輸入:git reset HEAD --hard 回覆到最近的一次commit,並且已修改的檔案還原到原始狀態,
注意:如果你想還原全部修改過的檔案才使用此操作 - 正常情況:
- 修改一份.php檔加上隨意字串,例如:"QQQ"
- git commit -a -m "edited"
- 我後悔了,我要回復上一動,但希望還原到上一個commit的原始狀態,也就是修改過的資料不保留
輸入:git reset HEAD^ --hard - git log 查看commit紀錄,剛剛commit不但不見了,也還原此commit的原始資料狀態
可以參考另外這篇有指令的集合:http://gogojimmy.net/2012/02/2...
$ git reset HEAD <file>:將剛剛add的檔案還原成untracked(unstage)
$ git reset HEAD <file>:將剛剛add的檔案還原成untracked(unstage)
- 新增ddd.txt (形態為unstracked)
- git add ddd.txt (形態變為 Changed to be commit)(stage)
- git reset HEAD ddd.txt (形態變為unstracked)
2012年12月7日 星期五
訂閱:
文章 (Atom)