Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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,我有一个带有如下配置文件的存储库: [remote "origin"] url = git@bitbucket.org:abc/abc.git fetch = +refs/heads/*:refs/remotes/origin/* pushurl = https://github.com/abc/abc-mirror pushurl = git@bitbucket.org:abc/abc.git github的回购是bitbuck

我有一个带有如下配置文件的存储库:

[remote "origin"]
        url = git@bitbucket.org:abc/abc.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        pushurl = https://github.com/abc/abc-mirror
        pushurl = git@bitbucket.org:abc/abc.git
github的回购是bitbucket的镜像。我对github做了一些更改,并将其推到github的only上。我还对bitbucket做了一些更改,当我推动更改时,与github的回购协议有冲突,但与bitbucket的回购协议没有问题

在这种情况下,如何获取github的更改并解决冲突

我相信我的问题可能会在某处被问到,但我找不到。请让我知道

提前谢谢

我的工作区会阻止bitbucket,但与github没有任何问题

有两种方法可以解决这个问题

最简单的是社交:让它将Bitbucket列入白名单。他们可能不是故意阻止它。要么他们使用的是一个白名单,但它不在白名单上,要么一些过于热心的黑名单在某个Bitbucket存储库中发现了一些它认为很淘气的东西,并将整个域列入黑名单

不幸的是,这种情况很有可能不会发生,所以技术上的解决办法是使用or通过防火墙。VPN是最简单的,在许多情况下非常有用。SSH隧道要求您在防火墙之外运行SSH服务器。尽管如果真的过于热心,他们也会阻止VPN和传出SSH

最后,如果你可以将手机作为热点使用,你可以使用它的互联网连接

因此,我希望在github上有一个镜像回购,这样我就可以 我在工作的时候会改变。我也喜欢在github上更改的任何内容 回购也很容易进入比特桶的回购。我想你是对的。我 把镜子的东西弄糟了

如果你对两者都做了更改,它们将“分离”。这是一个可管理的情况,但您必须将它们作为单独的远程设备进行管理。这对你的处境似乎没有必要

相反,决定哪一个是镜子并坚持到底。听起来您更喜欢Bitbucket,所以使用Github作为镜像。与其有两个pushurl,不如将Bitbucket设置为
pushurl
,将Github设置为
镜像。然后,当您按下
时,Github上的任何内容都将被本地版本覆盖

--镜子

指定refs/(哪个)下的所有ref,而不是命名要推送的每个ref 包括但不限于refs/heads/、refs/remotes/和refs/tags/)be 镜像到远程存储库。新创建的本地参照将被推送到 远程端,本地更新的引用将在远程端强制更新, 删除的参照将从远程端删除这是默认值,如果 配置选项remote..mirror已设置。


对于直接的情况,请添加一个远程

git remote add github https://github.com/abc/abc-mirror
然后使用
git-fetch-github
,然后使用任何常见的冲突解决技术(
git-merge-github/master
git-rebase-github/master
)。您可以在一个步骤中使用适当的参数将其设置为git pull,但我发现单独执行每个步骤要容易得多


从长远来看。。。我认为进行镜像(或构建等)的最佳方法是让一些带有cronjob的服务器在裸repo中执行
git-fetch-github&&git-push-bitbucket
。。。或者可能使用github的通知钩子,但我从来没有烦恼过,因为我不关心即时性,在同步之间等待一个小时对于我的用例来说是可以接受的


还不清楚为什么要将bitbucket视为主要版本,因为github是唯一可以自行更新的版本。

如果要单独更改bitbucket版本,它不是镜像。这似乎有问题。也许可以备份并解释您使用此设置解决的问题?为什么你必须对“镜像”进行更改?@Schwern我的工作区会阻止bitbucket,但github没有问题。因此,我希望在github上有一个镜像回购,这样我就可以在工作时保留更改。我也喜欢在github的回购协议上所做的任何更改,也很容易转到bitbucket的回购协议。我想你是对的。我把镜像的东西弄糟了。只需添加第二个遥控器从github获取。@o11c您能列出准确的线路更改吗?谢谢谢谢你的详细答复。从答案来看,似乎我只能修改bitbucket的回购协议,而我对github的任何更改都将被覆盖?在我的设置下,是否可以合并更改而不以最困难的方式进行合并。。。