2012-03-16 47 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