gpt4 book ai didi

svn - git-svn:重置主人的跟踪

转载 作者:IT王子 更新时间:2023-10-29 01:04:15 26 4
gpt4 key购买 nike

我正在使用 git-svn 来处理 SVN 存储库。我的工作副本是使用 git svn clone -s http://foo.bar/myproject 创建的,因此我的工作副本遵循 SVN 的默认目录方案(主干、标签、分支)。

最近我一直在研究一个分支,该分支使用 git-svn branch myremotebranch 创建并使用 git checkout --track -b mybranch myremotebranch checkout 。我需要在多个位置工作,因此我经常从分支机构 git-svn dcommit 编辑文件到 SVN 存储库。

完成更改后,我切换回 master 并执行 merge ,提交 merge ,并尝试将成功的 merge 提交到远程主干。

似乎在 merge 之后,master 的远程跟踪已经切换到我正在处理的分支:

# git checkout master
# git merge mybranch
... (successful)
# git add .
# git commit -m '...'
# git svn dcommit
Committing to http://foo.bar/myproject/branches/myremotebranch ...
#

有没有一种方法可以更新 master,使其像 merge 前一样跟随 remotes/trunk

我正在使用 git 1.7.0.5,如果有帮助的话。

如果您还可以解释为什么会发生这种情况,那将很有用,这样我就可以避免问题再次发生。谢谢!

编辑:

这是我当前的 .git/config:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
autocrlf = false
[svn-remote "svn"]
url = http://foo.bar/myproject
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
[branch "mybranch"]
remote = .
merge = refs/remotes/myremotebranch

看来树干指向了正确的地方。然而,切换到分支然后回到主节点并没有帮助; master 中的 git svn dcommit 仍然尝试推送到 myremotebranch

最佳答案

当 trunk 上没有更改时,git 会进行快进 merge ,并将本地“master”分支简单地设置为您分支上的提交。 Git-svn 不知道如何将快进 merge 提交回主干,事实上它认为“master”现在指向 svn 分支。

要解决此问题,请在 merge 时使用 git merge --no-ff。这将强制 git 创建一个 merge 提交,然后可以将其提交给 svn。

关于svn - git-svn:重置主人的跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835791/

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