What have you found for these years?

2008-10-30

終於知道為什麼要 rebase 而不是 merge

大概是因為一直 merge 就會有這種下場吧... XD



怪不得之前會看到 Evan 推薦的 git 使用流程
(rubinius leader, see Git Workflow section)裡會有 rebase,
我心想 rebase 不是比較容易造成問題嗎?那不是 svn 的 style 嗎?

看來應該是因為 merge 會把 branch 弄得很複雜吧? XD
不過講真的,svn 我大概只用了 50% 的功能,git 我只用了 2% 吧... orz
還有太多搞不清楚是在做什麼的功能了。這次測試 sandbox branch 和共同開發,
實在是搞半天才勉強弄出可以跑的流程...

而且應該還會碰到很多問題需要解決 :s git 還算滿值得研究的,
用得好的話,很多事情都可以管理得很好。用不好的話,一團糟 XD

我開始覺得 svn 也有他的好處在,至少比較簡單,不會搞半天不知道在幹嘛...
儘管如此,還是要推 git 啊!畢竟 svn 實在太殘廢了些。
不用 git 也該用 darcs 或 mercurial 之類的。最少也要用 svk,
我想 svk 應該是 svn 的進化終點 @@ 以 svn 的架構而言,應該很難進步了。


*


現在的開發流程應該是這樣...

template editor 在 master 修改 template,
接著 merge 到 sandbox, 再 push 進 test server.

core developer 則 pull test server 的 master,
再 push 進 deploy server.

哪裡不對的話,就 reset --hard 掉 @_@

也就是說,一般修改都是針對 master,
然後 sandbox 再 merge master 來測試結果。
而 sandbox 最早則是 forked from master, 再加上一些特殊的修改。

意思就是 sandbox 是 master 的 superset, that's all.
master 不用去管 sandbox 的存在與否,只有 sandbox 會一直 merge master.

不過我是不小心讓 master merge 了 sandbox 很多次...
結果設定檔就全爛掉了 XD 幸好有 git reset --hard 可以挽回錯誤...
只是講真的,人數不多時這樣玩還可以。等到有一堆 distributed repository 時,
亂 reset --hard 就要知道厲害了... commit history 應該會亂成一團 :o

git 真的是高手玩的,我搞不太懂。

4 retries:

Poga Po said...

我只會git commit -a... 這樣有沒有0.01% XD

Lin Jen-Shin (godfat) said...

這個嘛,可以用 git help -a 搭配 option 算算看 @_@b

老林 said...

最近看 github 上多了 graphs 這項可看,
媽啊那個圖是怎麼做到那麼帥的啊 XDDDDDDDDDDD

除了 commit activities 之外還有分析所使用的語言
cubeat 居然被判定 C and C++ 參半 @_@"
最好笑的是裡面怎麼會有 Smalltalk 啦 XD

Lin Jen-Shin (godfat) said...

我也覺得很詭異,看其他 project 大抵上都正常,
就是 cubeat 不明所以參雜一堆東西 @_@
我記得之前好像更多的樣子... XD

還有以前他都用 flash, 超慢的,後來改成圖片好多了

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0