Tag: Git
-
Git: How to count member's commits
在 Git 裡計算 commits 數量個人是覺得沒什麼意義,頂多就是看著數字,滿足一下虛榮心吧。跟看磁碟重組的小方塊差不多。 $ git shortlog -s -n 65 CQ 34 Robin 12 Diro 8 micky 類似這樣,參考參考。 [Updated: 12-11-2013] 如果想查詢全部共有多少 commits,可以用以下指令: $ git rev-list HEAD –count 119
-
Git .gitignore file for Xcode projects
最近才開始整理一些在寫 Obj-C 時當作測試用的範例程式碼,想丟去 GitHub 作個紀錄。 因為這樣才開始在 Xcode 裡使用 Git。雖然 Xcode 本身有整合 Git,但是那個整合還蠻陽春的,連 .gitignore 要怎麼設定都沒點提示。 .gitignore 是 Git 程式碼管理系統裡用來指定哪些檔案不需被追蹤用的文字檔。 看在 Xcode 專案裡的檔案分佈,哪些要忽略還真不容易分辨。一樣是在 StackOverflow 看到幾個解答,在這筆記一下。 # Xcode .DS_Store */build/* *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 xcuserdata profile *.moved-aside DerivedData .idea/ *.hmap 這樣再看 Xcode projects 就清爽多了。 Update Jun 28, 2013 另一種寫法 # Exclude the build directory…
-
How to undo a Git pull?
不經一事,不長一智啊…. 以前用 Git 幾乎都是一人專案,最近才開始有協同工作的專案。這天在 fetch 了新的進度後,就很順手 pull 了… 然後就爆了。 因為我忘記切換 branch 就 pull,結果被合併到別線上去了。還好只有我本機掛掉,大不了砍掉 repo 重建一次就好。 不過想想還是看一下怎麼回復上一動好了,StackOverflow 真是工程師的好朋友。 用此指令可以查 HEAD 變化的歷史紀錄。 $ git reflog show 結果如下 $ git reflog show cc7cb8e HEAD@{0}: pull pic3@dropbox user/auth: Merge made by the ‘recursive’ str 3686266 HEAD@{1}: commit: Database Schema ea26bdb HEAD@{2}: checkout: moving from ea26bdb27a04284e03a119207ade4602d78c06cf ea26bdb HEAD@{3}: checkout: moving…
-
Sublime Text 2 Recommended Settings and Plugins
Sublime Text 2 是近幾年竄起的一款文字編輯器,在 PC、Mac、Linux 平台上都有為數不少的粉絲。雖然我在開發工作上還是傾向使用 IDE 環境,Sublime Text 2 強大又方便的種種設計,仍是一款必裝的軟體。 [updated: Mar 14, 2014] 最近又入手一台 Mac Mini,新主機上也設置了開發環境,在這邊順手記錄一下 Sublime Text 2 的相關資訊。 Preference.sublime-settings { “bold_folder_labels”: true, // 左側Sidebar的目錄名稱變為粗體字 “caret_style”: “smooth”, // 測試中 “fade_fold_buttons”: false, // 行號旁邊的程式碼收折箭不隱藏 “font_face”: “Droid Sans Mono”, // 換個字型試試 // “font_face”: “inconsolata”, “font_size”: 15.0, “highlight_line”: true, // 高亮目前游標所在行 “ignored_packages”: [ “Vintage” ],…
-
移除 Git Repo 中的敏感資料… [solved]
原本我的程式碼都託管在 BitBucket.org 上,選擇這家服務是因為他們的計費方式是算人頭的,而不是算專案數,對於我個人的小專案來說等於是無限的免費使用。 最近和幾個對程式開發有興趣的朋友、同事在 GitHub 上弄了 Private Repository,開始有了將幾個小專案丟過去讓大家參與開發的念頭。不過因為許多專案在初期我就把帳密等一些敏感訊息也跟著 commit 出去了,年輕不懂事。 需要把 repo 裡的敏感檔案刪除。 GitHub 有一篇教學文 Remove sensitive data。但是第一次耍蠢,忘記切換到 master 就下刪除指令,結果 history 變成這樣…. 於是 git branch -D phpQRCode 移除了整條線。重下一次指令… 這樣的情況有點囧…. Tag 沒有移過去,不曉得是不是因為沒下 –tag-name-filter cat 的關係。總之,現在感到相當困擾。繼續研究怎麼處理。 [Updated: 2013-04-22] 後來用 rebase 先整理過 history 後,用以下指令移除檔案。 git filter-branch -f –tag-name-filter cat –index-filter ‘git rm –cached –ignore-unmatch — path/file’ –prune-empty…
-
Git: Archive modified files only
專案上線後通常還會視需求追加功能或修正臭蟲,公司的政策是每次的版更都只佈署變動過的檔案,以減少不必要的風險。 不過每次版更,都要從版本紀錄裡把修改過的檔案一支一支挑出來,打包成 ZIP 檔寄給 MIS。這個步驟非常消耗腦細胞,一次佈署可能動輒數十支檔案,一支一支挑出來非常麻煩,還有可能漏失檔案。 科技始終來自於人性,在這樣手動更新了幾次後就受不了了,來研究一下可行的方案。 Git 有 archive 指令可以打包檔案,但看來只能打包一整個版本的全部檔案 (?)。 另外有 git diff 指令可以查詢特定版本之間的差異。跟 Mac OS bash 的指令結合一下就可以了。 zip <filename>`git diff –name-only 版號1 版號2` filename 就是要輸出的檔名,我通常會用 PROJECT_NAME_patch_revXXXXX.zip 的方式命名,讓 mis 能馬上看懂這是什麼專案 (PROJECT_NAME) 的第幾個版本 (revXXXXX) 以什麼型式封裝 (patch) 的檔案,如果是整個專案的檔案而非變動檔的話,用 full 的字樣代替。 所以指令長這個樣子: zip qodingus_patch_rev23c5ae.zip `git diff -name-only HEAD df923h` 版號可以用 tag 名稱代替。接著我只要把這個熱騰騰的 zip 傳送給 mis,我的工作就結束了,輕鬆愉快。
-
[unfinished] CentOS Server Git Setup
http://cse.csusb.edu/turner/wiki/CentOS_Server_Git_Setup http://netlog.jpn.org/r271-635/2008/01/apache_ssl_on_fedora_8_1.html http://memo-off.blogspot.tw/2012/03/centosgit.html http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/