Feed on
Posts
Comments

Tag Archive 'git'

最近幫別公司處理 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 [...]

Read Full Post »

在 commit code 之前,程式設計師必須確保程式碼的正確性,包含不要放入 debug message 到 git server,寫了一個簡單的 pre-commit 程式,來確保 PHP 是否有 Parse error,或者是在寫 CoffeeScript 及 JavaScript 時,常常會用到 console.* 來當作中斷點或者是顯示變數資料,這也是需要盡量避免 commit 到伺服器,你可不想要長官 review 的時候看到這麼多 debug 訊息吧。這時候就是需要 git-hooks 的 pre-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 等副檔名。

Read Full Post »

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

Read Full Post »

昨日去台北簡報如何快速學習 git,投影片主要是給新手 git 基礎介紹,如何使用 branch model,git submodule 及 tag。內容不會很難,適合之前就玩過任何一套 version control 的使用者來閱讀,如果有 svn 基礎,學習會比較輕鬆。簡報搭配 github 內容來教學。 Introduction to git View more presentations from Bo-Yi Wu 投影片內容參考 Git Pro book 這網站教學,大家可以直接看原文說明,會更清楚 Git 使用。

Read Full Post »

Github 支援 SVN Client

Github 一年前宣佈開始支援 SVN Client,不過這是必須透過 https://svn.github.com 才可以取得資料,跟一般 git 的網址不一樣,然而就在最近宣佈了同步支援 svn 也可以存取 https://github.com/,並且過不久的將來會移除 https://svn.github.com/ 網域。 URL 處理 git 方式: $ git clone https://github.com/appleboy/PHP-CodeIgniter-Framework-Taiwan git-ds Cloning into git-ds… remote: Counting objects: 4177, done. remote: Compressing objects: 100% (665/665), done. remote: Total 4177 (delta 3544), reused 4140 (delta 3509) Receiving objects: 100% (4177/4177), 2.65 MiB | 239 KiB/s, done. [...]

Read Full Post »

看到 gslin 大神寫了一篇 把 GitHub 上的 private repository 搬到 BitBucket 上…,最近自己也把一些不能公開的專案轉到 BitBucket 上面,由於在 BitBucket 上面可以無限開 private repository,所以我想也沒有必要付費給 Github,雖然論 Web 功能上而言,Github 還是略勝一籌,個人還是比較習慣 github 有 Network 的圖形可以看,不過平常還是都是在打指令,所以也沒差了,在 push 速度上面,感覺 BitBucket 也沒有輸 github 許多,所以決定就轉過去了,人總是為了錢所考量,當然 BitBucket 還是有些缺點的,可以參考之前寫的 Bitbucket 開始支援 Git Repository

Read Full Post »

目前開發網站都傾向於用 Compass 這套 CSS Framework 來 develop,開發之前必須把環境先弄好,就是要有 Ruby 套件才可以安裝 Compass,網路上的教學幾乎都在是 Ubuntu 底下用 apt-get 方式來安裝,其實相當方便,但是 Fedora 或 CentOS 就是要用 yum 方式來安裝,這次碰到 CentOS 竟然 yum search git 出來的結果是空的,所以決定全部都透過 tar 的方式來安裝全部套件了。由於 Fedora 幾乎都可以找到套件,但是碰到 rubygems 需要用到 ruby 1.8.7 以上版本,所以還是乖乖的用 tar 方式吧。 大家可以試試看透過底下 yum 方式安裝: yum install -y ruby ruby-devel rubygems 雖然 Fedora 透過上面可以安裝成功,可是 ruby 跟 rubygems 的版本根本是…太舊了吧 …

Read Full Post »

很高興剛剛收到 Bitbucket 寄來一封會員信,標題非常吸引大家的注意,那就是 Bitbucket now rocks Git.,是的,你沒看錯,Bitbucket 現在開始支援 Git repository,不再只有 Mercurial 可以使用,這還不算什麼,Bitbucket 更是推出無限制免費 private repos for free ,這樣的推出,不知道會有多少 Github 用戶轉移到 Bitbucket 上面,還有另一項主因就是 Unlimited disk space 無限制硬碟容量,不過也許不用高興的太早,Bitbucket 在使用者人數上面有些限制,可以參考 Plans & Pricing,免費方案每個 Repository 只能有5個 User,反觀 Github 並沒有這限制,不過我想這也不是問題,大家可以 Fork 到自己的專案,在 Pull Request 即可。 補充官方網站提供了轉換各大 Source Hosting 工具,目前支援 Github、SourceForge、Google Code、Subversion、Mercurial…等。

Read Full Post »

公司採用 svn 當作版本控制,而我最近在整理 svn 上面全部的 source code。基本上我都會將 git 跟 svn 也一起搭配著用,因為個人比較熟悉 git 的操作方式,然而跟同事討論了專案目錄的架構,進而要把一些目錄轉換大小寫,本來的 App 就改成 app,這個在 git 底下(OS: Linux)操作非常容易,直接 git mv App app,之後看 git status 可以發現底下輸出: # On branch develop # Changes to be committed: #   (use "git reset HEAD <file>…" to unstage) # #       renamed:    nav/hacks.txt -> Nav/hacks.txt # [...]

Read Full Post »

Git Submodule 介紹與使用

自己用 Git 已經很長一段時間了,沒用過 git submodule 的話真的是對不起自己,今天來筆記 Git Submodule 一些操作步驟及說明。 git Submodule 使用時機 大家在開發新專案的時候,不知道有沒有用到其他專案的程式碼,像是 Web 專案,也許會用到 Blueprintcss CSS Framwork 或者是 Sass,這些專案目前都放在 Github 上面進行維護,以前的作法就是先 git clone 下來,把要的檔案分別複製到自己專案,可是問題來了,如果官方更新了程式碼,那自己的專案如何更新呢?難道是重複步驟把檔案複製到原來地方嗎?這樣會不會太麻煩,這時候就是需要 git submodule 來幫助大家進行程式碼的更新,這樣隨時隨地都可以取得最新的程式碼。補充說明一點,git 目前無法針對單一專案底下的單一檔案或目錄進行 clone,而必須 clone 整個目錄,這點跟 svn 有很大的不同,所以 git 可以建立各個不同的 submodule 來整合成一個大型 Project。換句話說就是: 在您的專案底下,你可以任意將其他人的專案掛載在自己任何目錄底下。

Read Full Post »

Older Posts »