关于github:git多个远程源

git multiple remote origin

本问题已经有最佳答案,请猛点这里访问。

我的Git配置--列表如下

1
2
3
4
5
6
7
8
9
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
[email protected]: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:如果是,那么在这里添加多个回购后如何管理它们?(或者如何为每个回购运行添加提交、拉入和推送)


我也遇到了同样的问题,在这里发布了一个解决方案。

是的,您可以运行多个项目,为此,您只需要从同一个地方运行git clone命令,而git将负责其余的工作,即在新的子目录中创建条目和创建repo clones。

我的最佳选择是——连接——命令,如果您想从同一个地方运行所有东西的话,可以一起运行。

例如,尝试以下操作:

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


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

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

假设是这样的话,您应该为它们每个拥有不同的本地存储库。您可以这样设置:

1
2
3
4
$ git clone [email protected]:username1/project1.git
$ git clone [email protected]:username2/project2.git
$ git clone [email protected]:username3/project3.git
$ git clone [email protected]:username4/project4.git

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

1
2
3
4
5
6
7
8
9
10
11
12
13
.
├── project1/
│   ├── .git/
│   └── ... (project contents)
├── project2/
│   ├── .git/
│   └── ... (project contents)
├── project3/
│   ├── .git/
│   └── ... (project contents)
└── project4/
    ├── .git/
    └── ... (project contents)

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

1
2
3
4
5
6
7
8
9
$ cd project1/
$ git remote -v
origin  [email protected]:username1/project1.git (fetch)
origin  [email protected]:username1/project1.git (push)

$ cd ../project2/
$ git remote -v
origin  [email protected]:username2/project2.git (fetch)
origin  [email protected]:username2/project2.git (push)

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

1
2
3
4
5
6
$ cd project2/
$ git config --list
...
[email protected]:username2/project2.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
...

推拉容易:

1
2
3
$ cd project3/
$ git pull
$ git push origin master