似乎至少有3种方法可以做同样的事情。
# 1. git remote add origin https://x@bitbucket.org/x/y.git
# 2. git remote set-url origin ssh://git@bitbucket.org/x/y.git
# 3. git config --local remote.origin.url ssh://git@bitbucket.org/x/y.git
注意:这似乎与THIS重复,但这些答案不完整,并不解释更改网址与“远程”的区别?
修改
进一步谷歌搜索:从this回答:
git中的
remote
基本上是不同存储库的书签 您可能希望从中提取或推送代码。书签 存储库可能位于本地计算机上的其他文件夹中 远程服务器,或者它甚至可能是存储库本身......但是 最简单的类比是书签。存储库甚至不必 您的存储库的一个版本,它甚至可能是完全不相关的 库中。
和this:
origin
不远程存储库名称。它是一个本地别名集,作为远程存储库URL的密钥。
答案 0 :(得分:5)
git remote
命令用于操作(使用,添加和删除)遥控器。它有十个(!)子命令:
git remote add
git remote rename
git remote remove
git remote set-branches
git remote set-head
git remote get-url
git remote set-url
git remote show
git remote prune
git remote update
每个子命令可以有自己的子子命令或选项;如果根本没有子命令运行,git remote
只列出所有遥控器。
无论出于何种原因,您只询问十个子命令中的两个:add
和set-url
。这可能是因为您不确定首先是远程是什么。简短的回答是远程只是一个名称,但它是一个用于的名称,用于跟踪另一个Git存储库,在其他URL上。
虽然origin
是一个非常标准的远程名称,但它不是唯一可能的远程名称 - 而您自己的存储库可能有 no 远程名称,在这种情况下origin
不是你的某个遥控器的名称,因为你没有。
尽管如此,许多(如果不是大多数)存储库只有一个远程存储库,因为git clone
创建了很多存储库。 git clone
命令自动创建一个名为origin
的遥控器,除非您告诉它使用其他名称。因此,大多数存储库已经有一个名称origin
。
git remote add
git remote add
的用途是添加新远程。如果你现在有一个遥控器,并且你添加另一个遥控器,那么你将有两个遥控器。如果你没有,并添加一个,你将拥有一个。
同样,远程的目的是命名另一个Git存储库,并在某个URL上找到其他Git存储库。因此,要使远程有用,它需要一个URL。所以git remote add
有两个参数:要添加的 new 远程名称,以及与该名称关联的URL。
(这省略了许多用遥控器可以做的更特别的事情。我从来没有发现它们中的一些有用,但它们是git remote add
有一堆选项标志的原因。 )
git remote set-url
git remote set-url
的用途主要是更改与某些现有遥控器相关联的网址。因此,它采用现有远程名称和新URL。默认操作是删除旧URL并插入新URL。
Git尝试不在此限制您使用单个网址:它允许将多个网址附加到每个指定的网址。准确地说,当任何一个遥控器有多个URL时会发生什么有点棘手;在您熟悉单URL遥控器之前,最好不要这样做。
git config
git config
命令是一个低级别的事情。您可以在Git中进行或更改的大多数设置最终都是通过配置条目完成的,这包括添加或删除遥控器以及更改与任何一个特定遥控器关联的URL。这意味着更高级git remote
命令通常会转换为一个或多个低级git config
操作。如果您确切地知道哪些配置条目控制哪些遥控器在哪种方式,您可以使用git config
来实现git remote
所做的一些相同的事情。
git remote
可以做的一些事情不仅仅是配置设置,所以并非所有内容都可以像这样翻译。但是添加或删除遥控器,并更改其网址, ,因此可以。
添加新的遥控器主要包括运行两个git config
命令。如果远程名称是 R ,则两个配置项为remote.R.url
和remote.R.fetch
。设置第一个而不设置第二个通常不是一个好主意,你需要知道将第二个设置为的内容,因此使用git remote
添加新的遥控器会更安全。
更改现有远程的(单个)URL包括仅运行一个 git config
命令。对于远程 R ,git config remote.R.url new-url
(--local
是git config
的默认设置,因此您可以省略它。该URL不会影响fetch
值,因此使用git config
执行此操作而不是使用git remote
来执行此操作是安全的(尽管有点无意义)。但是,如果 多个URL附加到某个特定的远程名称,git remote
会添加git config
完全绕过的安全检查。
答案 1 :(得分:1)
没什么不同,但是它们是不同的
实际上,当您运行git remote add origin git@github.com:User/TestRepo.git
时,会创建一个新的名为 origin 的遥控器。
运行git remote set-url origin git@github.com:User/TestRepo.git
时,git搜索具有相同名称 origin 的现有远程服务器,并更改它的远程存储库URL,但是git无法找到任何远程具有名称来源,它将引发致命错误:No such remote 'origin'
。
答案 2 :(得分:0)
在第一种情况下,当您运行remote origin some@github.com/User/repo
时,您会创建一个新的远程,名称为origin
在另外两个案例中,git正在搜索现有的遥控器,名称为origin
这些示例没有首选方法,因为命令会产生不同的内容。