git svn:有好的分支和合并模式吗?
我正在我的机器上运行git svn客户端。我希望有一个类似于标准git分支和合并模式的模式,其中有一个从主干分支的开发分支,还有几个从开发分支扩展的特性或bug修复分支 我遇到的问题是,我不知道如何使用git svn实现这些功能。我知道合并是香草subversion的一大难题,香草git也很好,但git svn也带来了难题 所以。。。。最佳做法是什么?如何使用git svn自信而轻松地进行分支和合并?它的开发实践是什么 我想遵循这个模式:git svn:有好的分支和合并模式吗?,git,svn,merge,git-svn,branching-and-merging,Git,Svn,Merge,Git Svn,Branching And Merging,我正在我的机器上运行git svn客户端。我希望有一个类似于标准git分支和合并模式的模式,其中有一个从主干分支的开发分支,还有几个从开发分支扩展的特性或bug修复分支 我遇到的问题是,我不知道如何使用git svn实现这些功能。我知道合并是香草subversion的一大难题,香草git也很好,但git svn也带来了难题 所以。。。。最佳做法是什么?如何使用git svn自信而轻松地进行分支和合并?它的开发实践是什么 我想遵循这个模式: * Master |\ | * Development
* Master
|\
| * Development
| |\
| | * Feature
| | |
| | * a commit to feature
| |\|
| | * merge Development into Feature
| | |
| |/|
| * | merge Feature into Development
... etc
任何帮助都将不胜感激
编辑
只是澄清一下——每个git分支都应该对应一个svn分支。这是一个团队工作流程,团队成员应该能够处理功能和bug修复分支。简而言之:
- 分支服务器端
- 单方向同步合并(从主干到分支/要素)
- 一次性归并(重新整合)(这将关闭分支)
svn list ^/<repo_path>
建议:
R1:不要签出顶级项目目录(包含trunk/branchs/和tag/的目录),而是签出trunk目录本身,即:
不要做:
svn checkout <BASE_URL>/svn/<proj>
做:
其次是:
cd <workdir_path>
svn sw ^/branches/feature
cd
svn sw^/分支机构/功能
R3:仅从主干合并(同步)到分支
cd <workdir_path>
svn merge ^/trunk
cd
svn合并^/中继
R4:要在另一个方向(从分支到主干)进行合并,请使用“重新整合合并”
svn up
svn switch ^/trunk
svn merge --reintegrate ^/branches/<feature>
(resolve conflicts and ...)
svn ci
svn向上
svn交换机^/中继
svn合并--重新整合^/分支/
(解决冲突和……)
svn ci
例外情况:如果您需要对主干进行更改,您可以选择使用--忽略祖先(以避免历史的复杂性)@sensonario,这里没有提到SVN,只要您的工作分支完全在本地git回购中,我看不出有问题。创建工作分支、工作、合并到主节点、数据提交回svn。这是我经常使用的一种模式。事实并非如此,git分支对应于实际的svn分支。这是一个团队工作流程
svn cp ^/trunk ^/branches/feature
cd <workdir_path>
svn sw ^/branches/feature
cd <workdir_path>
svn merge ^/trunk
svn up
svn switch ^/trunk
svn merge --reintegrate ^/branches/<feature>
(resolve conflicts and ...)
svn ci