我的回购是SVN,我做所有的开发使用Git。我们有一个标准的布局,我初始化我的本地回购与git svn init -s <url to repo>
git-svn如何知道dcommit要分支到哪个分支?
这是我与分公司的工作流程:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
最后一个命令上面会更改提交到分支名称的分支。我的问题是,git如何知道这一点?当我做git reset --hard foo
,究竟发生了什么?
这可能只是回落到大约GIT中的一般问题。每次我尝试研究一个答案时,我都会对svn整合是否是一种特殊情况感到困惑。
[1]“git-svn将查找提交树来提交对应于活动SVN分支的祖先提交,然后将提交给那些提交树。” - 有时它猜测错了 - 有没有办法让我明确指定它? [2]“这种东西可能会让你的SVN历史变得模糊 - 所以,历史将是不合理的,但是代码文件的合并应该很好,是的? – 2010-11-12 19:49:25
嗯,手册页说'--commit-url'应该只用于切换传输,并且“非常强烈地劝阻”使用这个选项用于任何其他目的(不要问)。“ – 2010-11-12 19:51:20
如果你想指定一个特定的分支来提交,只需要在你的Git仓库中相应的远程分支上重新分配你的特性分支。 – cdhowie 2010-11-12 19:52:13