Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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中的远程分支_Git - Fatal编程技术网

合并并删除git中的远程分支

合并并删除git中的远程分支,git,Git,我使用gitsvn将主干和分支从svn导入git。我把它们都放在git里了,但是树枝是独立的,没有指向树干。以下是它的图形外观: a<--b<--c<--d \ \ \ (master)(remotes/trunk) \ (remotes/feature1) a<--b<--c<--d<--e \

我使用
gitsvn
将主干和分支从svn导入git。我把它们都放在git里了,但是树枝是独立的,没有指向树干。以下是它的图形外观:

a<--b<--c<--d
         \    \
          \    (master)(remotes/trunk)
           \
            (remotes/feature1)

a<--b<--c<--d<--e
                 \
                  (remotes/branches/feature1)

a注意,在第二张图中,您将以e'而不是e结束。任何时候你改变亲子关系,你会得到一个新的sha,即使介绍的内容是相同的

我猜你只是在本地回购协议中胡编乱造,不需要在上游进行更改?如果是这种情况,那么您可以选择cherry-pick来移动sha,然后对分支指针执行一些强制更新

git checkout -b new_feature1
git cherry-pick e
git update-ref remotes/feature1 HEAD
git update-ref -d remotes/branches/feature1

如果你真的需要在遥控器上进行更改,那么你肯定不想做update-ref。你必须做
git push-f new\u feature1:feature1
git push--delete

我不知道git svn是如何工作的。您是否有两个存储库,其中“master”表示本地分支,“remotes/feature1”表示来自远程分支的引用?或者它们都是本地分支?在git svn进行导入之后,它们位于同一个本地存储库中。带有remotes前缀的分支被列为远程分支,可以使用
git branch-r
列出。好的-当您说“删除远程/分支/功能1”时,您指的是此存储库中的引用,并注意实际远程上的引用?我想是的,没错。我用樱桃采摘。
git checkout -b new_feature1
git cherry-pick e
git update-ref remotes/feature1 HEAD
git update-ref -d remotes/branches/feature1