鱼C论坛

 找回密码
 立即注册
查看: 961|回复: 4

[已解决]多个远程仓之间是什么关系?

[复制链接]
头像被屏蔽
发表于 2023-5-29 16:28:17 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-29 17:15:11 | 显示全部楼层    本楼为最佳答案   
理解你的疑问,下面我来分别回答:

1. 多个远程仓库可以用于多种场景。例如,你可能正在协作开发一个项目,这个项目的主要仓库(origin)可能在 GitHub,但你可能还想要在其他地方备份你的代码,比如 Bitbucket,那么你可以将 Bitbucket 的仓库设置为另一个远程仓库。另一个常见的场景是,当你想要对别人的项目进行贡献时,你可能需要先 Fork 这个项目到你自己的 GitHub 账户下,然后将这个 Fork 的项目 clone 到本地,这时你的本地仓库就有两个远程仓库:一个是原始项目的仓库,一个是你 Fork 后的仓库。

2. 是的,你的理解是正确的。在你描述的情况下,A 和 B 文件夹确实就是两个独立的本地仓库,它们分别有自己的  .git  文件夹,存储着各自的版本历史。

3. 你的理解部分正确。不过,关于多个远程仓库,我们需要进一步理解:
    a. 一个本地仓库可以有多个远程仓库。在  git remote -v  中, -v (verbose)的意思是显示详细信息,用于列出所有的远程仓库。当你在 A 文件夹中输入  git remote -v ,它会列出与当前本地仓库相关的所有远程仓库。这并不代表 A 文件夹的 git 能管理所有的项目,而只是当前这个本地仓库可以与多个远程仓库同步。
    b. "fetch" 和 "push" 描述的是你从这个远程仓库拉取和推送代码的默认行为。在你的例子中,可能是这个项目有两个远程仓库,一个是原始的仓库,你只能从这个仓库拉取代码(fetch);另一个是你 Fork 的仓库,你可以在这个仓库中进行推送(push)。这样,你可以在你的 Fork 仓库中进行修改和开发,然后定期从原始仓库拉取更新。

关于你的最后一个问题,“viztracer”这一个项目为什么需要两个远程仓库?这是因为在开源社区,开发者通常会 Fork 一个项目进行开发,然后向原始项目提交 Pull Request。在这种情况下,开发者的本地仓库就会有两个远程仓库:一个是原始项目的仓库(用于拉取最新的代码),一个是 Fork 的仓库(用于推送自己的改动)。至于本地为什么需要多个仓库,这通常是因为开发者同时在处理多个项目或者需要管理不同的开发环境。每个仓库可以独立地追踪历史,分支等,所以它们是独立的。

在同一个项目下使用两个本地仓库的情况相对较少,因为 Git 的分支系统可以很好地处理单个项目中的多个开发线。但是,有些情况下,你可能想要完全独立的工作副本,比如当你需要维护项目的多个版本时(比如版本 1.x 和版本 2.x)。这时,你可能会选择创建两个本地仓库,每个仓库对应一个版本。

总的来说,Git 的这些功能为开发者提供了非常灵活的工作方式。你可以根据你的具体需求选择适合你的方式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-29 17:28:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-29 17:32:09 | 显示全部楼层
boluobenbo 发表于 2023-5-29 17:28
谢谢你的详细回复。非常有帮助。但是我也产生了一个新问题。如何灵活的让一个本地仓与多个远程仓“关联” ...

要添加一个新的远程仓库,你可以使用  git remote add  命令。这个命令后面通常跟两个参数:一个是远程仓库的别名(例如 origin),一个是远程仓库的 URL。

假设你有一个现有的本地仓库,并且你想要添加一个新的远程仓库,步骤如下:

1. 在命令行中,切换到你的本地仓库的目录。
2. 输入以下命令,将新的远程仓库添加到你的本地仓库:
git remote add <别名> <远程仓库的 URL>

请将  <别名>  和  <远程仓库的 URL>  替换为你实际的内容。例如,如果你想要添加一个名为 backup 的远程仓库,其 URL 为  https://github.com/user/backup.git ,你可以输入:
git remote add backup https://github.com/user/backup.git

这个命令会添加一个新的远程仓库,别名为 backup,URL 为  https://github.com/user/backup.git

要将本地的代码推送到新的远程仓库,你可以使用  git push  命令:
git push -u backup master

这个命令将你本地的 master 分支推送到名为 backup 的远程仓库。

注意,你需要确保新的远程仓库是空的,否则  git push  可能会失败,因为 Git 不允许你推送代码到一个包含不同历史的仓库。

一旦你添加了新的远程仓库,你就可以使用  git push 、 git fetch 、 git pull  等命令来推送和拉取代码。你只需要在命令后面指定远程仓库的别名即可。例如,要从 backup 仓库拉取代码,你可以输入  git pull backup 。

如果你想查看所有的远程仓库,你可以输入  git remote -v  命令。这个命令会列出所有的远程仓库及其 URL。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-29 17:46:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 05:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表