我在一个网址上添加了多个git远程名称,如果我推送会发生什么?

时间:2016-06-06 03:13:24

标签: git

我刚开始学习git。我已经阅读了如何添加远程存储库并将其连接到本地存储库。但是当我测试它时,我运行了三次命令git remote add,并在一个网址上添加了名称,如:

$ git add remote learnGit xxxxxx/learnGit.git
$ git add remote origin xxxxxx/learnGit.git
$ git add remote orign xxxxx/learnGit.git

$ git remote
learnGit
origin
orign

如果我想稍后拉,它的效果是否相同:

git pull learnGit master
git pull origin master
git pull orign master

感谢。

2 个答案:

答案 0 :(得分:2)

是的,所有的pull命令都可以正常工作,因为所有的遥控器都指向同一个存储库。与推送相同。

答案 1 :(得分:0)

我想了解更多细节,这里可能不需要。

git是分布式版本控制管理系统。您添加的每个遥控器都会成为一个单独的存储库。对于每个远程git,将其历史记录保存在具有相同名称的本地指针中。

EG。 对于learnGit远程的master分支。本地指针将为leranGit/remote

当您获取这些遥控器时,会更新这些本地指针。 (拉是获取和合并)。

如果您为同一个网址创建多个网址。如果您正在执行git pull与本地合并,它没有任何区别,因为所有三个遥控器都会看到相同的更改,这是远程的。

但是可能存在这些遥控器的本地指针中可能存在不同状态的情况。

例如 如果让其他一些开发人员做出一些提交并推动掌握。

git fetch learnGit/master # local master/learnGit updated to latest master on remote

在上述情况下,执行上述命令后,以下结果会有所不同。

git merge learnGit/master # Will merge with latest commits

git merge origin/master # Will merge with commits which are not on remote, Since local pointer of origin/master is not updated yet by means of fetch