【问题标题】:git multiple remote origin [duplicate]git多个远程来源[重复]
【发布时间】:2015-09-03 15:12:25
【问题描述】:

我的 git config --list 看起来像这样

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@bitbucket.org:username/project1.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
include.path=/var/www/__/subfolder/

问题 1:我可以为多个项目添加多个远程来源吗?

问题 2:如果是,那么在此处添加多个 repos 后如何管理它们? (我如何为每个 repo 运行 add commit pull 和 push)

【问题讨论】:

  • @Jubobs no 先生,您共享的链接的情况完全不同。我的 repos 都是独立的,不能相互混淆。
  • 您能详细解释一下吗?当您说它们是分开的时,您的意思是,它仍然是相同的代码库吗?
  • @dpcasady 我从 bitbucket 获得了克隆,这些克隆来自 4 个不同的用户和 4 个不同的项目(彼此没有连接)。
  • 抱歉,您能否解释一下为什么在同一个仓库中需要 4 个不相关的项目,也许您需要将它们添加为子模块。

标签: git github bitbucket


【解决方案1】:

我遇到了同样的问题并在这里发布了解决方案。

是的,您可以运行多个项目,为此您只需要从同一个地方运行 git clone 命令,然后 git 会处理其余的工作,即创建条目并在新的子目录中创建 repo 克隆。

如果您想从同一个地方运行所有内容,我最好的选择是 --concatenate-- 命令并一起运行..

例如,试试这个:

$ cd project1/; git command 1; git command 2; cd..;

【讨论】:

    【解决方案2】:

    您是否在本地 git 存储库之一中运行 git config --list(git config 存在于全局、系统级别和本地存储库级别)? git config 的内容是为您填充的,还是您自己添加的?

    我不确定我是否完全理解问题所在,但听起来您希望拥有四个完全独立的本地 git 存储库,每个存储库都从单独的 bitbucket 项目克隆。

    假设是这种情况,您应该为它们中的每一个设置不同的本地存储库。你可以这样设置:

    $ git clone git@bitbucket.org:username1/project1.git
    $ git clone git@bitbucket.org:username2/project2.git
    $ git clone git@bitbucket.org:username3/project3.git
    $ git clone git@bitbucket.org:username4/project4.git
    

    这将为您提供以下目录结构:

    .
    ├── project1/
    │   ├── .git/
    │   └── ... (project contents)
    ├── project2/
    │   ├── .git/
    │   └── ... (project contents)
    ├── project3/
    │   ├── .git/
    │   └── ... (project contents)
    └── project4/
        ├── .git/
        └── ... (project contents)
    

    如果您进入这些目录中的任何一个并运行git remote -v,您会看到每个目录都有一个名为 origin 的远程并指向不同的存储库。每当您克隆一个 git 存储库时,每次都会自动为您创建一个名为 origin 的远程,并指向您从中克隆的存储库。

    $ cd project1/
    $ git remote -v
    origin  git@bitbucket.org:username1/project1.git (fetch)
    origin  git@bitbucket.org:username1/project1.git (push)
    
    $ cd ../project2/
    $ git remote -v
    origin  git@bitbucket.org:username2/project2.git (fetch)
    origin  git@bitbucket.org:username2/project2.git (push)
    

    或者,正如您所演示的,您可以使用git config --list 看到您的遥控器:

    $ cd project2/
    $ git config --list
    ...
    remote.origin.url=git@bitbucket.org:username2/project2.git
    remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
    ...
    

    推拉很容易:

    $ cd project3/
    $ git pull
    $ git push origin master
    

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 2022-01-27
      • 2018-03-19
      • 2014-10-14
      • 1970-01-01
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多