tig 是把 git 倒過來寫,
是一個可以用來取代 git log 的好東西,沒什麼好介紹的,用下去就知道了,
簡單明瞭, h 可以顯示一些說明
有一天在把改好的東西 push 到 github 上時發現還是需要輸入帳號密碼。
可是我已經將 public key 放到 github 上了,主機上也有對應的 private key,
而我在其他電腦上也作過相同的事,卻不需要帳號密碼。
找不到原因的情況下只好求助 CrBoy 大大,
經過大大的提點以後發現我的 remote url 所用的是 https 的而不是 ssh 的,
這應該是跟在 clone repo 時所使用的 url 有關。
其中一個修改方法是在 repo 中的 .git/config 裡修改,
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* # ssh url = git@github.com:float-tw/float-blog # https url = https://github.com/float-tw/float-blog.git
將 url 的部份由 https 改為 ssh 就可以了,而 url 寫法可以在 github 的 repo 頁面找到。
在 Ubuntu 11.10, 12.04 底下用 git clone https 的 project 時看到了這個錯誤
error: gnutls_handshake() failed: A TLS packet with unexpected length was received
最簡單的解決方法是改用 http 就可以避開這個問題,
另外的解決方法是把 git 重新編譯,好像是因為 ubuntu 預設的 SSL 是使用 GnuTLS
而 GnuTLS 在處理某些網站的時候會有錯誤 [1] ,
重新編譯改用 OpenSSL 就可以解決這個問題,下面簡單的編譯流程,和我遇到的問題
首先先不要急著把你的 git 移除,先拿他來下載最新的 git source cdoe
git 官網提供的也是 https 的,自己把他改成 http
$ git clone http://github.com/git/git.git
把 libcurl4-gnutls-dev 換成 libcurl4-openssl dev
$ sudo apt-get install libcurl4-openssl-dev
這時候應該會順便把 libcurl4-gnutls-dev 移除,
同時也可以安裝一下編譯需要的程式、函式庫可以參考 git 資料夾下的 INSTALL 後半段,
或是編譯的時候在依照錯誤訊息去安裝。
編譯流程
$ make configure $ ./configure $ make all doc # make install install-doc install-html
這邊我遇到的問題是,如果照著 INSTALL 裡的 $ ./configure --prefix=/usr
編譯出來的程式還是有相同的問題,不要加或是用 --prefix=/usr/local 才行
要編譯 doc 的話要安裝 ASCIIDOC 而 doc 編譯的時間看起來比 git 本身還久 Orz
在 install 前可以先拿編譯完在 git 資料夾下的 git 測試看看,如果沒有相同的 error 後,
再把原本的 git 移除,移除後在以 root 安裝