gpt4 book ai didi

Git-svn merge 和提交分支

转载 作者:太空狗 更新时间:2023-10-29 14:48:17 27 4
gpt4 key购买 nike

我最近一直在使用 git-svn 通过 git 管理一个旧的 svn 仓库。

我最近在一个我创建的分支机构工作:
git checkout -b local-branch svn-branch

从那以后我一直在那个分支工作,并使用以下方法回到 svn-branch:
git svn dcommit

现在是时候将本地分支 merge 回主分支了,我尝试执行以下操作:
git checkout master
git merge 本地分支

到目前为止,还不错。现在我想将 merge 提交回颠覆,所以我试试这个:
git svn dcommit

但是,现在我的主人正在提交回 svn-branch 分支,而不是我预期的主干。有没有我错过的东西或者这种 merge 只是不建议像这样在 svn 分支之间 merge ?

作为旁注,我改为通过 svn 进行 merge ,但我想尽可能避免必须使用 svn。处理此问题的首选方法是什么?

最佳答案

git svn dcommit 始终将更改发送到 git-svn-id 签名中指定的 url,该签名是 HEAD 历史中第一父提交链的最新提交。

我想,您的 merge 是快速转发的(即主引用可以从本地分支/svn 分支访问),所以它只是通过“git merge”而不是 merge 提交创 build 置为本地分支。

作为建议,始终使用带有“git merge”的--no-ff 选项,因为Subversion 没有快进 merge 这样的概念。 (您可以将此选项 (merge.ff=true) 设置为 config 中的默认值 [ 或将 branch.master.mergeoptions 设置为 Git 的“--no-ff” < 1.7.6] 但请注意,如果您使用超过 1 个 Remote ,“git pull”也将变为非快进)

为了避免使用 SVN 和/或 git-svn:如果您可以访问您的存储库服务器,您可以查看 SubGit为 Subversion 提供纯 Git(不是 git-svn)接口(interface)的项目。即使在 SubGit 的情况下,也强烈建议使用 --no-ff 选项,因为快进 merge (和快进 rebase )无法与分支删除和另一个提交的重新创建区分开来(这对于任何 Git<->SVN 转换都是正确的)工具)。

但也许任何其他原因(我不知道任何其他原因)导致“git-svn-id”在最新的提交消息中带有分支 URL(而不是主干 URL)。无论如何,请确保 master 指向正确的提交。

关于Git-svn merge 和提交分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com