Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git svn:有好的分支和合并模式吗?_Git_Svn_Merge_Git Svn_Branching And Merging - Fatal编程技术网

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

我正在我的机器上运行git svn客户端。我希望有一个类似于标准git分支和合并模式的模式,其中有一个从主干分支的开发分支,还有几个从开发分支扩展的特性或bug修复分支

我遇到的问题是,我不知道如何使用git svn实现这些功能。我知道合并是香草subversion的一大难题,香草git也很好,但git svn也带来了难题

所以。。。。最佳做法是什么?如何使用git svn自信而轻松地进行分支和合并?它的开发实践是什么

我想遵循这个模式:

* Master
|\
| * Development
| |\
| | * Feature
| | |
| | * a commit to feature
| |\|
| | * merge Development into Feature
| | |
| |/|
| * | merge Feature into Development
 ... etc
任何帮助都将不胜感激

编辑

只是澄清一下——每个git分支都应该对应一个svn分支。这是一个团队工作流程,团队成员应该能够处理功能和bug修复分支。

简而言之:

  • 分支服务器端
  • 单方向同步合并(从主干到分支/要素)
  • 一次性归并(重新整合)(这将关闭分支)
这是我当前推荐的svn工作流,基于一些注释。 <和>之间的单词是占位符

提示:

T1:使用符号“^/”表示您的基本存储库。 从项目中的任何位置,您都可以根据存储库列出:

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