Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用git svn切换svn分支? 复制品_Svn_Git_Git Svn - Fatal编程技术网

如何使用git svn切换svn分支? 复制品

如何使用git svn切换svn分支? 复制品,svn,git,git-svn,Svn,Git,Git Svn,我正在使用git svn跟踪svn上其他人的开发。我试图弄清楚如何使用gti svn从一个svn分支切换到另一个。我能找到的所有示例都谈到使用svn switch作为切换位置而不是实际分支的方法 从本质上讲,我希望从/svn/branch/1.3开始,而不是从/svn/branch/1.2开始 使用svn fetch。如果您正确克隆了svn存储库(使用-T-b-T或-s),您应该能够使用git branch命令,如: git reset --hard remotes/branch git ch

我正在使用git svn跟踪svn上其他人的开发。我试图弄清楚如何使用gti svn从一个svn分支切换到另一个。我能找到的所有示例都谈到使用svn switch作为切换位置而不是实际分支的方法

从本质上讲,我希望从/svn/branch/1.3开始,而不是从/svn/branch/1.2开始
使用svn fetch。

如果您正确克隆了svn存储库(使用
-T-b-T
-s
),您应该能够使用git branch命令,如:

git reset --hard remotes/branch

git checkout branch

等等。

当我通过git svn处理svn分支时,这些命令非常有用:

#create local Git branch that mirrors remote svn branch

git checkout -b local/RELEASE-0.12 RELEASE-0.12 
#will connect with a remote svn branch named ‘RELEASE-0.12′

# -n will show which svn branch you will commit into:
git svn dcommit --dry-run 

请参阅我关于的文章中的完整解释。

根据我的经验,只做一件事就行了

git checkout -b RELEASE-0.12 RELEASE-0.12
local/
前缀是不需要的,不使用它对我来说也不太容易混淆。旧的
RELEASE-0.12
分支已经是一个远程分支,因此git不会将其与新分支混淆


上面的命令不会创建跟踪分支关系。但这并不是必需的,
git svn rebase
无论如何都能按预期工作。

结果表明这是一个重复。对不起,我没有看到dup。你在哪里看到的?我编辑了你的问题以提供一个链接。如果我的本地回购协议中已经有更改,我会在github上推送到一个单独的git回购协议,该怎么办?我最初使用git svn clone创建了repo,git checkout分支不会破坏您的更改。git reset--hard可以。如果您在这里使用reset--hard,您将清除远程/分支上本地所做的任何更改。我不拥有svn repo,显然只有分支被公开(作为发布)。因此,这实际上不是另一个请求的副本。在这个场景中,我不能先执行git分支-r,然后执行git签出-b基本上,git分支-r不显示1.2下的1.3分支。我可以这样做,但我的语法不同
git签出-b branchname origin/branchname