我同時使用 SVN 及 git。
對我來講,SVN 是一套比 Time Machine 可靠的版本控管/同步/備份的檔案系統,我習慣把文件、設定檔或一些雜七雜八比較重要的資料都丟進 SVN 中保存。SVN 在 Mac 上有套不錯的 GUI 介面叫 Versions,它可直接選擇 Kaleidoscope 做為預設 diff tool。
git 在 Windows 上的支援比較差,也沒找到比較好的 Mac GUI 介面。所以個人認為 git 不像 SVN 那麼適合用來管理文件,但 git 對於寫程式真的很方便,一旦跨越學習門檻後,很容易就會愛上 git。
以下是我目前的 .gitconfig 設定 (參考了這篇文章),標藍色的部份設定了 git difftool 開啟 Kaleidoscope,標綠色的部份可以讓輸出結果漂亮一點。
[core]
editor = emacs
[color]
ui = true # 很多指令的輸出會有顏色標示
[alias]
co = checkout
ci = commit -m
ca = commit -a -m
br = branch
st = status
d = diff -w --color-words
dt = difftool
unstage = reset HEAD --
l = log --pretty=oneline --graph
[diff]
tool = ksdiff # set as default for difftool
[difftool "ksdiff"]
cmd = /Applications/Kaleidoscope.app/Contents/MacOS/ksdiff \"$LOCAL\" \"$REMOTE\"
[difftool]
prompt = false
另外可以在命令列加上一個 bash alias,如在 ~/.profile 中加上
alias ksdiff=/Applications/Kaleidoscope.app/Contents/MacOS/ksdiff
就可以直接在命令列中開啟 Kaleidoscope 比較兩個檔案
$ ksdiff <file1> <file2>
此外如果你嫌 git log 的介面還不夠方便,除了 Xcode 內建一套類似 Time Machine 很炫的 git log 介面外,也可以安裝一套 GitX 軟體提供檢視 log 的 GUI 介面。
如果你已經裝過 MacPorts ,輸入一行指令就可安裝 GitX
$ sudo port install GitX
終端機在 git 管理的路徑下輸入 gitx 就可直接開啟 GitX
--------------------------------------------------------
ps. Xcode 4 的 git 整合有一些 bug,當用 git 做 branch checkout 之類較大的變動時,最好先關閉 Xcode 的 workspace/project,否則 Xcode 會 crash。
Xcode 4.4.1 已經改善了 diff 介面,大部分情況下可以直接在 Xcode 中做 git diff 的動作了...
回覆刪除