gpt4 book ai didi

git - 是否可以在 Github 和 Gitlab 上放置一个 Git 存储库?

转载 作者:行者123 更新时间:2023-12-03 18:25:25 25 4
gpt4 key购买 nike

是否可以在 github 和 gitlab 上都放置一个 git repo?
所以如果你推送到一个远程仓库,它同时在 Github 和 Gitlab 上。

最佳答案

您误解了 Git 的工作原理。或者内容托管的工作原理。

首先,您的 repo 不在 GitHub 或 GitLab 上。你的 repo 在你的硬盘上,就在你克隆或创建它的地方。这是一个存储库。本地一。这是您工作的地方 *)

在 GitHub 和 GitLab 上,您可以设置 远程复制 您的存储库。然后,在您对本地存储库进行了一些工作之后,您可以指示本地存储库将这些新的工作位发送到该远程副本。或者到另一个远程副本。或者到50个异地举行的远程副本。

第二个事实是,GitHub 和 GitLab 是分开的 .事实上,只有一个 GitHub,但没有一个 GitLab。那里有很多 GitLab,您甚至可以购买服务器并托管自己的 GitLab。这只是强调它们都是分开的。无论您发送到 GitHub 的任何内容都不会神奇地出现在 GitLab1、GitLab2 或 (..)

第三个事实,它们都是独立的,但它们都允许您托管 git 存储库的副本。因为您可以指示您的本地仓库将内容发送到 多个 Remote ,您可以让它们全部同步。

但是,每次您想要进行推送时将所有 URL 粘贴到所有服务器会很麻烦,因此可以教您的本地 git repo 知道远程位置并为您记住它们。这称为 remotes你可能已经看到了它的形式:

git push origin master
\ \
\ branch to be pushed
name of the remote
origin是您使用的-single-remote-server 的典型名称。但是如果你想要很多,你可能想要设置一些有意义的名字,比如:
git remote add remote-github (url-to-repo-on-github)
git remote add remote-gitlab1 (url-to-repo-on-gitlab1)
git remote add remote-gitlab2 (url-to-repo-on-gitlab2)
...

这设置了 3 个以上具有不同名称的 Remote 。现在你可以:
git push remote-github master
git push remote-gitlab1 master

等等。这将起作用 - 基本上,进行代码更改、提交、将它们推送到 3 台以上的服务器,并且您“在 GitHub 和 GitLab 上拥有相同的东西”。请记住,如果您并不孤单,并且如果您让某人在 GitHub/GitLab 上单独处理您的代码,则每个人都需要同时以相同的顺序推送到所有 Remote ,否则它会很快出现分歧。

手动推送到 2 个以上的 Remote 也可能有点麻烦,即使他们被他们的名字记住了。这就是为什么 recent Git versions allow to set multiple push URLs under single name of a remote .

此外,Git 存储库和一些 Git 主机支持“触发器”或“ Hook ”。这些东西允许你设置一个脚本,每次发生事情时都会执行。诸如提交或推送之类的东西。使用它,您可以指示您的主机,例如,在每次收到推送时推送到另一个远程仓库。但我不会介绍它,这里&现在,我想你已经有足够的关键词可以搜索了!

*) 好吧,除了一些半自动化的东西,比如 PRs/MRs/Reviews/Issues/etc - 但这是特定于您的工作流程并在托管站点上支持它。显然,由于站点是独立的,并且由于对功能的支持可能不同,因此在一个站点上执行的 PRs/MRs/Reviews/../等不会神奇地转移到其他站点。如果特定功能是通过分支实现的,那么您可以通过一些钩子(Hook)和脚本来同步它。否则,您需要为该站点找到合适的插件。或者,好吧,自己写。 IIRC,至少 GitLab 有一个 API。

关于git - 是否可以在 Github 和 Gitlab 上放置一个 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50686889/

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