我正在开发一个带有两个分支的svn项目,让我们调用它们
trunk
branches/foo
Run Code Online (Sandbox Code Playgroud)
我的想法是克隆整个svn存储库(告诉git哪个文件夹是主干,标签和分支),在git中进行合并然后将我的合并复制到svn工作副本并从svn提交更改.
在这个工作流程中,我是否可以使用gits合并功能,还是仅适用于使用git创建的分支?
jfs*_*jfs 23
为checkout命令创建别名:
git config alias.co checkout
Run Code Online (Sandbox Code Playgroud)
确保您的本地分支机构是最新的:
git co master # checkout branch that tracks subversion's trunk
git svn rebase
git co local/foo # checkout branch that tracks subversion's branches/foo
# It assumes that the branch is created with the command:
# `git co -b local/foo remotes/foo`
# And the repo was created with:
# `git svn clone --stdlayout SVN_REPO_URL`
git svn rebase
Run Code Online (Sandbox Code Playgroud)
合并分支:
# create new local branch based on `master`
git co master
git co -b merging_branch_foo
# merge, resolve conflicts, etc (pure git)
git merge local/foo
# rebase `merging_branch_foo` to linearize history for subversion
git rebase master # or `rebase -i`
# merge `merging_branch_foo` into `master`
git co master
git merge merging_branch_foo # --squash to create single commit
# commit changes to svn
git svn dcommit
# (optionally) delete `merging_branch_foo`
git branch -D merging_branch_foo
Run Code Online (Sandbox Code Playgroud)