有没有办法创建一个本地分支,或修改一个现有的本地分支,以便它不能被scomn repo dcommit?这是对场景的描述。
git checkout -b local.farBranch remotes/farBranch
git checkout -b patched.local.farBranch
git merge local.patches
<work on patched branch && test>
<do not commit onto patched.local.farBranch>
git checkout local.farBranch
git commit -am "some changes"
git rebase local.farBranch patched.local.farBranch
<another work test cycle>
git checkout local.farBranch
git commit -am "last changes"
git svn dcommit
现在,我永远不想dcommit patched.local.farBranch(跟踪遥控器/ farBranch),因为这会将我的本地补丁放入SVN存储库。这不是一个致命的问题,但是在keester中是一个痛苦,因为当SVN farBranch最终(SVN)合并到主干上时必须删除补丁。所以我正在寻找的是一种防止这种情况的方法
git checkout patched.local.farBranch
git svn dcommit <<== ERROR
git checkout local.farBranch
git svn dcommit <<== OK
答案 0 :(得分:0)
我不这么认为。我最近在git-svn上寻找其他东西并通过简单地使用git-svn-id项查找最新的日志消息来获取该信息。 (这就是为什么git merge会导致问题)。
你可以克隆git-svn repo,这将导致你不能提供的git repo,但这也有一些很大的缺点。我不会真的推荐它,虽然它可能适合你。
如果是这样的话我也会喜欢它,如果有人问他/她,也许git-svn的维护者会在将来的版本中以某种方式包含它。
答案 1 :(得分:0)
我可以补充一点,git-svn不适合与不同的分支机构合作。我建议改用SmartGit。它总是建议根据本地分支名称进入分支。