2012-03-16 102 views
4

我剛剛開始使用版本控制,我的腦袋正在旋轉!我正試圖將我的頭圍繞分支機構,結賬,合併和重新分配。我敢肯定這些都是愚蠢的問題,但真的很感謝一些幫助。Aptana,SourceTree和Git - 初學者

我的項目是PHP。我爲我的IDE使用Aptana工作室,爲Git GUI使用Bitbucket和SourceTree。

所以我想我可能會對現在應該如何工作有個粗略的想法。請告訴我我錯在哪裏。

說我想添加一個新功能。我有一個主分支。在Aptana中,我可以右鍵點擊一個文件→轉到團隊,然後創建一個新的分支。我可以命名該分支feature a1bc。我做了我的更改。

一旦我有了這個功能,所有的變化做我點擊提交,然後團隊合併分支。這將我的更改合併回主回購。

這大概是我如何去做功能增加等?還有,隨着時間的推移,如果我有100多個功能,我該怎麼做?我是否保留所有這些功能分支或將它們合併後刪除它們?

+0

有相當多關於如何做到這一點的無數種方式。如果我有任何發言權,我會遵循[git-flow模型](http://nvie.com/posts/a-successful-git-branching-model/)。主要是因爲它被記錄在案,並附帶[高級工具](https://github.com/nvie/gitflow)。 – millimoose 2012-03-16 23:16:33

回答

7

你需要的,如果你在master重新合併爲一個快進合併決定或不

git merges

由於分支到由隔離工作(見「When should you branch」) ,您可以定期將feature分支納入master,,同時繼續開發feature分支上的所述功能。
在這種情況下,建議使用(和considering Aptana defaults, might better be done in command-line)。但是,如果您製作了一個分支來隔離短期開發項目,則可以通過快進合併(爲了「完全」混合兩個分支),將feature分支合併到master中。
如果master有一些提交,而你正在開發feature,您將需要重訂feature上的master第一頂,然後合併在masterfeature(這將是快進)。

有關詳細信息,請參見:

+0

VonC, 因此,我將這些功能分支合併回開發分支後,我是否刪除功能分支?如果沒有,我會得到一大堆功能分支。或者有沒有辦法將他們從名單中隱藏起來,這樣他們就不再顯示了? – ipengineer 2012-03-17 15:09:37

+0

@ipengineer:對於shrot-lived'feature'分支,你清理它們的歷史(擠壓一些提交,重新排序它們),然後在'master'之上重新綁定'feature'分支,最後快速合併它, 'master'之一的'feature'分支部分的(已清除)歷史記錄。所以在這種情況下,你並沒有真正刪除它(因爲你保留了提交),你只需刪除'feature'分支,刪除指向所述分支的指針。 – VonC 2012-03-17 16:59:53

+0

@ipengineer但是,對於長期存在的'feature'分支,您將重要的提交合並回''master',那麼您可以刪除'feature'分支,這會刪除指針,但也會「忘記」所有中間提交。 – VonC 2012-03-17 17:29:23