2013年9月24日 星期二

[GitHub相關] 使用git push 出現 "you can't push to git use https...." 的解決方式

Git hub 前面基本設定之後,最後要git push xxxxxxxx  master 時,

出現以下:
fatal: remote error: 
You can't push to git://github.com/my_user_name/my_repo.git
Use git@github.com:my_user_name/my_repo.git

原因是因為 git 是 Read-Only , 叫你使用https的方式存取,

故你若要使用 git 來做存取 , 你必須要打通SSH key 來加入到你的GitHub帳號,

照著以下簡單步驟做就可以使用git push 嚕
https://help.github.com/articles/generating-ssh-keys








當然若你要使用https也是可以(就不用SSH key了),但是可能還是會有問題,會出現

"error: The requested URL returned error: 403 while accessing https://github.com/JackABK/rtenv.git/info/refs"

請參照這裡解決:
http://askubuntu.com/questions/186847/error-gnutls-handshake-falied

不過還是介意自己產生ㄧ組SSH key 加入到自己Git Hub帳號吧!!













2013年9月15日 星期日

char 與 unsigned char 需要注意的地方

其實大家應該都知道差在哪裡,

ㄧ般來說 , 你如果宣告ㄧ個變數

char a ;

那就會依照你的編譯器來決定 變數 a 是signed char 還是 unsigned char ,

比如說以下:


gcc編譯器 會將 char  定義為  --> signed char 

arm-linux-gcc 編譯器會將 char 定義為 --> unsigned char 


所以在使用上要非常小心,留意到負值的問題。

當然你如果是使用short 或者是 int 則不會有這方面的問題,很清楚就是帶符號。

以上是我移植上出現過的小問題,提供給大家當作經驗。


Refer to :
http://blog.csdn.net/archielau/article/details/7424210 

2013年9月10日 星期二

gcc/g++ 常用參數

因為常用到gcc/g++ 所以將常用到的參數列出:



gcc [option] filename

※ 選項

-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ansi c標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
-O2 : 做最佳化

-M : 生成文件所關聯的信息,包含目標文件所依賴的所有源代碼, ex: gcc -M hello.c
-MM: 與-Mㄧ樣,只是他將忽略由#include<file>所造成的依賴關係
-MD: 與-Mㄧ樣,但是輸出將導入到.d的文件裡面


Synology DS1511+ 使用筆記



Synology DS1511+ 使用教學:

首先可以參考這篇:
http://whoisray.pixnet.net/blog/post/57214970-synology-ds1511%2B%E4%BA%82%E4%B8%83%E5%85%AB%E7%B3%9F%E9%96%8B%E7%AE%B1%E6%96%87



使用步驟


  • 首先必須要先到官網上下載Synology Assistant 和 DSM
Synology Assistant是用來幫我們連線到 Nas上設定的軟體
DSM 則是安裝到Nas上的作業系統


http://www.synology.com.tw/support/download.php?lang=cht&b=5%20bays&m=DS1511%2B

接下來 我們要將DS1511+接上電源與網路

接上之後打開我們安裝在電腦上的
Synology Assistant 連線到DS1511+上




























<注意>我在使用的時候遇到連不上的問題

最後解決的方式是把裡面的硬碟都拔出來
讓裡面是空的狀態下按開機 並重新連線就會成功連線 

成功之後再把硬碟一一地接回去

  • 接著點兩下上圖中被塗掉的部分,開始設定
    • 過程中會詢問先前下載DSM的位置
    • 接著會做一些設定
  • 內建密碼為空白(不要輸入)  
    • 如果發生密碼錯誤請將電腦重新開機並不要封鎖網路連線
  • 當成功進入之後就會出現以下畫面

<Note>

我剛打開時會發生硬碟錯誤所以需要先把原本有的儲存空間給刪掉
之後在另外新增新的儲存空間

  • 接著就可以對裡面的檔案做管理
  • 開啓控制台如下圖:




  • 舉例來說 點擊ftp選項 啓動ftp服務
























  • 也可以啓用web的服務


  • 另外也可使安裝phpmyadmin套件來管理nas上面的資料庫
    • 預設的使用id:root  密碼:空白


現階段應該只會拿來做ftp其他的功能再慢慢研究摟

2013年9月3日 星期二

Git入門筆記(一)

學習Git方面起步有點跌跌撞撞

主要是一開始對於版本控制還沒有建立清楚的概念

首先可以先參考下面幾個網頁
1.http://git-scm.com/blog
對於每個操作他都也列入完整的圖片說明

2.http://gitreal.codeschool.com/levels/1
另外code school的這個教學level 1 講解的也很清楚 對於剛入門的我來說非常有幫助
裡面有很生動的動畫告訴你每一個指令發生了什麼事 也有練習可以做

3.http://try.github.io/levels/1/challenges/1
我建議先看過第二個連結再來利用這個網站練習
看過之後再來做會比較能想像這些指令在做些什麼
可以多練習幾次會越來越有感覺


接下來我要對第一個連結的內容與圖片做簡單的整理:



  • 先記住“stage”“commit”“checkout”
先來看看git最主要的操作流程如下圖























假設我們今天開始了一個專案,這個專案今天有兩個檔案被修改了
當修改完後我們必須將這些修改給提交上去

從上圖的最右邊開始看  當我們完成了檔案的修改之後
必須先做一個stage的動作“讓檔案到stage的狀態
而這個動作是透過add的指令來做

可以來思考一下 你加入了這些檔案之後 你是不是該對這個檔案做一些說明
告訴大家你對這些檔案作了怎樣的修改

因此當你對幾個修改過的檔案作stage之後,你就可“commit”出去


Q1:所以我每次改完一個檔案就要做commit?
不一定,每次的commit就像是我們遊戲的存檔,
你不會希望你在玩遊戲每玩一步就存檔一次
只有當你玩到覺得到一段落才會做存檔

Q2:所以可以一次stage 多個檔案之後 再做commit?
沒錯,就像是你把很多個要寄出去先放到一個大箱子一次寄出去

  • “push”“pull”
到上面為止我們的工作都只在local端進行修改我們的repository
當完成多個commit後 也許要上傳到remote端了 就會需要用到push
而要從remote端取得資料則是使用pull


  • “等等,所以指令呢?所以要怎麼做呢?” 
  • “下面就開始實際操作

1.先到專案的資料夾裡面

git int

這時候就會產生git repository 如下圖:

而今天我們在這個資料夾中新增了一個file.txt檔



















2.將檔案做stage

git add file.txt

他就會變成stage的狀態如下圖:

我們可以看到file.txt被放到index中,當然你可以多放幾個進去




















3.當我們完成stage的動作後 就要做commit的動作

git commit -m "你這次commit所作的修改說明"

我們可以看到我們的檔案在repository中產生了一個新的版本




















4.之後當你對檔案作了修改 我們可以用

git status

來查詢我們的檔案有哪裡做修改卻還沒update

下圖是我們對file.txt作了修改





















5.再對這些檔案作staging 並commit

git add file.txt









git commit -m "你對這個檔案修改的說明"





















這樣就能順利提交檔案到local端的repository摟!

<注意>
1.目前我們所做的這些動作都只限在本地端 所以還沒有做push的動作
2.在使用前一定要先裝git

另外更多的觀念與操做等我整理完再更新摟