透過 https 下載套件,取代 git protocol

現在前端套件幾乎都會透過 Bower 來下載,而 Bower 預設使用 git protocol 來下載原始檔案,如果遇到 timeout 逾時,也就是無法透過 git:// 方式,就必須要切換成 https:// 下載,蠻多人遇到此問題,網路上找到這篇 bower install - github.com connection timed out 解答。在 Console 視窗噴出底下錯誤訊息,就請改用 https 方式。

Additional error details: fatal: unable to connect to github.com: github.com[0: 192.30.252.130]: errno=Connection timed out 切換方式很容易,請在 Console 鍵入底下指令

1
$ git config --global url."https://".insteadOf git://

遇到 bower install 卡卡的也可以用這招 XD

Bower  git  npm 

GitLab 快速安裝

gitlab_logo

最近想安裝新版的 GitLab,竟然發現 GitLab 推出快速懶人包,終於可以不用打很多指令來安裝了,大幅降低了安裝困難度,目前支援 CentOS, Ubutnu, Debian 等安裝包,GitLab 各版本也可以從這邊列表找到,另外安裝前請確保你的硬體環境是符合 GitLab 所要求,來看看有沒有這麼簡單安裝。

[Read More]

用 Go 語言寫的 Github Git 服務

null

最近看到大陸那邊用 Go 語言寫了一套類似 Github 服務叫做 Gogs(Go Git Service),目前個人裝起來速度方面相當快,跟 GitLabRuby 寫的 Git Service 速度有差,以功能完整性來說,GitLab 還是大勝 Gogs,安裝方式則是 Gogs 勝於 GitLab,如果最後要推薦用 Gogs 還是 GitLab,我個人還是會選 GitLab 因為畢竟還是要搭配 Jenkins 等 CI 服務才能發揮作用,這次來筆記如何在 Ubuntu 上安裝 Gogs。

[Read More]
git  Github  GitLab  Go 

在 Local 端處理 Github 專案 Pull Request

github-logo

這篇會筆記如何將 Github 上專案內的 Pull Request 拉到 Local 端電腦,雖然現在大部分的 Open Source 都會寫 Unit Test 並且搭配免費的 Travis CI 自動化測試,但是有時候也是需要把別人的 Pull Request 拉下來測試後再進行 Merge,而 Github 官方有提供一篇說明文件 Checking out pull requests locally,底下紀錄操作步驟。

[Read More]
git  Github 

Git Server 噴 git upload-pack: git-pack-objects died with error

Git-Logo-2Color

透過 Gitlab 架設 Git Server 來放一些 Document 資料,由於個人 Document 都是 pdf 檔案,所以整個 Git Repository 就非常肥大,今天在 Clone 下來的時候,不僅是主機 CPU 飆高,然後記憶體被吃到快沒了,最後還噴出底下錯誤訊息

remote: Counting objects: 4912, done.
remote: fatal: Out of memory, malloc failed
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
[Read More]
git  GitLab 

Drone.io 搭配 Ruby 環境測試

相信現在 Git 已經是大家共通的版本控制工具,每當專案有新的 commit,我們可以透過 Travis 來幫忙做測試,但是 Travis 真的只有支援測試而已,如果測試成功想要進一步 Deploy 到任何機器或者是繼續做任何動作,這些都不支援的,那國外有些 Service 可以整合 GithubBitbucket Project 幫忙做到自動測試及 Deploy,比較常見的就是 Codeship,這服務非常強大,整合了 HerokuApp EngineNodejitsu .. 等服務,Deploy 也支援 Fabric, Puppet, Shell script 等等,這家的收費是看每個月做了多少次編譯測試動作,最便宜的方案每個月 $9 美金,只能編譯 50 次。

[Read More]

Git rebase + stash 小技巧

每天打開電腦,第一件事情就是將專案程式碼更新的最新,以便整合同事新開發的功能,免的跟自己寫的功能衝突,所以最常用用的就是 git pull --rebase origin master,此命令使用 rebase 來取代 merge 程式碼,也可以避免在 log 清單內出現 merge branch master into master 等字樣,但是如果在開發一半進度時,想同時將同事的程式碼先 merge 進來,會發現無法 merge,git 會請你先將 local 修改過的檔案 commit,才可以讓您更新,所以這時候我們可以用 git stash 方式來解決

如果你在 master 分支上,並且想 pull 最新的 commit,可以透過底下指令步驟

$ git stash --include-untracked
$ git pull --rebase origin master
$ git stash pop
# fix conflict (merge)
[Read More]

Git denying non-fast forward 問題

最近幫別公司處理 denying non-fast forward 的 git server 問題,沒事就別動檔案權限,不管是不是修改內容,只要用 chmod 指令,Git 還是會判別檔案變動。處理 git push 直接給我噴 $ git push --force origin master Total 0 (delta 0), reused 0 (delta 0) error: denying non-fast forward refs/heads/master (you should pull first) To git@git.example.com:myrepo.git ! [remote rejected] master - master (non-fast forward) error: failed to push some refs to 'git@git.example.com:myrepo.git' 會遇到這問題的原因是使用者將不該 commit 的程式碼都 push 到伺服器上面,例如資料庫帳號密碼,個人帳蜜等等,這真的是不應該,解決方式也沒有很難,只要用 git reset --hard 到您需要的 commit hash 值,並且 git push --force 方式蓋掉 Server 上面的程式碼,但是如果遇到 git push –force origin 或 git push –force origin master 都無作用,那就請加上底下設定 [Read More]
git  Github 

在 git Commit 之前檢查 PHP 是否有錯誤

Git-Logo-2Color
在 commit code 之前,程式設計師必須確保程式碼的正確性,包含不要放入 debug message 到

git server,寫了一個簡單的 pre-commit 程式,來確保 PHP 是否有 Parse error,或者是在寫 CoffeeScript 及 JavaScript 時,常常會用到 console.* 來當作中斷點或者是顯示變數資料,這也是需要盡量避免 commit 到伺服器,你可不想要長官 review 的時候看到這麼多 debug 訊息吧。這時候就是需要 git-hookspre-commit 幫忙檢查這些 Syntax 語法,可以直接參考我的 git-hooks 專案。安裝方式很簡單:

$ git clone https://github.com/appleboy/git-hooks.git
$ chmod +x bin/hooks.sh pre-commit
$ ./bin/hooks.sh your_project_path
如果使用 git commit 之前,就會檢查 .js、.coffee、.php 等副檔名。

PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog

php-logo
今天筆者來介紹幾套目前免費的雲端虛擬主機服務,自從

Git 版本控制的出現後,大家可以發現,以往免費的虛擬主機搭配後台 Panel,這種模式已經不再看到,取代而之的就是用 Git 來管理程式碼,而不是用 FTP 上下傳方式了。筆者認為學會 Git,是一件非常重要的事情,這樣可以嘗試不同雲端服務,,像是 PHPFogPagoda BoxAppFog …等。這次介紹的雲端主機服務不同於 Linode VPS,Linode 是可以拿到完整的虛擬主機權限,可以進行主機的效能優化,以及安裝合適的套件。

[Read More]
AppFog  git  Pagoda  php  phpfog