trunk(主幹)團隊中大部分成員工作的主要倉庫,前期大的團隊的代碼管理的主要控件,它的功能的側重點是開發階段的代碼的管理的和內建,由于svn的沖突解決方式來進行代碼沖突的處理,一般是最後送出的需要進行代碼的處理,Xcode5以後的版本加強了對于svn的內建,是以現在Xcode可以更加友善的進行代碼的送出和沖突解決,但是為了更好的進行分支和代碼更新曆史的管理,最好使用用戶端進行輔助管理,比較推薦的Versions比較友善,不需要進行層次深入的更新操作。
branches(分支)分支既是從主幹上衍生出來的代碼副倉庫,當然這個别稱有待商榷,但是它的目的是顯而易見的,就是為某些解決特定問題或者實作特殊功能的大牛們的專用倉庫,他們會在開發的工程中,從團隊的主幹中分離出來,進行特殊的工作,而為了不讓這些特殊的操作影響項目的進度和産品的上線,就從主幹上複制一份目前的完整代碼,交給某些人進行特殊功能的開發,如果在産品上線之前,這個分支的問題能夠得到很好的解決的話,就會将分支的功能子產品合并到主幹上,為主幹增加光采,當然分支的另一個主要功能是進行不同階段的代碼的備份。
tag(标記)是一個比較特殊的分支,存儲的都是已經上線的産品。産品1.0上線之後,大家當然要繼續埋頭苦幹為了2.0而加班加點,這個時候如果一旦發現1.0版本有很嚴重的bug,那麼這個時候的操作就是在1.0的tag版本上建立另外一個分支,在這個分支裡修改bug,同時主幹的工作必須繼續進行,盡快的進行産品bug的修複,之後将修改完的版本合并到主幹中去,這樣主幹的工作沒有收到影響,而且即時的解決了bug,并且以後的2.0版本也沒有這個同樣的bug了。