git-远程添加来源与远程设置URL来源


411

我创建一个新的存储库:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

然后,我想将提交推送到在github上创建的空远程存储库中,因此我必须设置remote。

使用以下命令有什么区别?:

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

最后,我执行推送:

git push -u origin master

编辑1:

当我在git init之后调用远程set-url原点时会发生什么?远程设置URL原点是否创建原点?如果git init之后原点已经存在,在我的场景中使用这些命令之间没有区别,对吗?

Answers:


507

下面是用来添加新的遥控器的:

git remote add origin git@github.com:User/UserRepo.git

以下用于更改现有远程存储库的URL:

git remote set-url origin git@github.com:User/UserRepo.git

下面将推动你的代码与所定义的远程仓库的主分支origin,并-u让你点你当前的本地分支到远程主分支:

git push -u origin master

文献资料


如果我从A克隆到本地,然后使用“ git remote set-url B”。它将删除A中的存储库吗?我正在尝试从将代码提交到GitLab的AWS代码克隆存储库
Josh

通常,当我创建一个新的仓库时,我会犯一个错误,并将原点设置为上游。最终需要用第二个命令来修正它git remote set-url origin git@github.com:User/UserRepo.git
蜂蜜

-u 让您将当前的本地分支指向远程主分支,我不明白为什么要这样做。我的意思是,假设我从母版撤下,创建了一个新的featureBranch ...提交了更改,然后将更改推送到origin / featureBranch,然后将该功能合并/拉入了我的母版。<—目前,我还没有完成FeatureBranch吗?为什么我需要它指向远程主分支?我不应该先结账到本地/主服务器,然后从最新的站点拉出吗?
亲爱的

答案非常好,除了-u标志的解释以外 ,在我看来,这是令人误解的。为了解释的-u标志,我建议看看这个线程stackoverflow.com/questions/18867824/...
晃陈德良

和-u让您将当前的本地分支指向远程主分支:我不明白这一行……​​您的意思是指向什么?
下雨

62
  • 运行时git remote add origin git@github.com:User/UserRepo.git,将创建一个名为的新远程origin
  • 当您运行时git remote set-url origin git@github.com:User/UserRepo.git,git搜索具有名称的现有远程服务器origin并更改其为远程存储库URL。如果git无法找到任何具有名称的远程服务器,origin则会引发错误fatal: No such remote 'origin'

如果要创建新的存储库,请使用git remote add origin git@github.com:User/UserRepo.git添加远程。


请查看Edit1
Irbis

git init不添加任何原点。只有git仓库会被初始化。如果克隆任何现有存储库,则它具有远程来源。建议是使用git add,以后git init不要set-url
拉姆

@Ram很明显,不要在git init之后调用set-url,因为这没有意义。set-url用于更改,add用于添加新的遥控器。
桑托什,

61

下面将重新初始化您的本地存储库;还清除远程存储库(即来源):

git init

然后在下面,如果不存在,将创建“ origin”:

git remote add origin [repo-url]

另外,您可以使用set-url子命令来编辑现有的遥控器:

git remote set-url origin [repo-url]

另外,您可以使用

git remote -v

希望这可以帮助!


1
git remote set-url origin ...在一个新的初始化仓库中,我得到了致命的消息:没有这样的远程“起源”。git remote add origin ...工作了。
Robb Vandaveer '18年

@RobbVandaveer感谢您的收获!我更新了正确使用子命令的答案set-url
vpibano,

32

git remote add=> ADDS新的远程。

git remote set-url=> 更新现有的遥控器。


  1. 后面add的远程名称是该命令之前不存在的新远程名称。
  2. 后面的远程名称set-url应该已经作为存储库的远程名称存在。

git remote add myupstream someurl => myupstream远程名称现在不存在,使用此命令创建它。

git remote set-url upstream someurl =>上游远程名称已经存在,我只是在更改它的url。


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

要添加新的遥控器,请git remote add在终端上使用命令,将其存储在存储库的目录中。

git remote set-url命令更改现有的远程存储库URL。

所以从remote add根本上说,就是添加一个新的,remote set-url就是更新一个现有的


28

1. git remote add origin git@github.com:User/UserRepo.git

  • 在使用初始化git到当前工作仓库后,该命令是命令系列的第二步git init
  • 该命令的简单含义是“您正在添加远程存储库的位置,您希望在其中将文件从!!。推入/拉出。”
  • 您的远程存储库可以在github,gitlab,bitbucket等上的任何位置。
  • origin是您的远程存储库的别名/备用名称,因此您不必每次都键入远程的完整路径,此后您便声明要使用此名称(来源)来引用您的远程。这个名字可以是任何东西。
  • 要验证是否正确设置了遥控器,请输入: git remote -v

    要么 git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

此命令意味着,如果您偶然偶然偶然第一次推送到错误的存储库,则可以使用上述命令“重置远程存储库路径”

3. git push -u remote master

此命令只是将文件推送到远程存储库。Git的概念称为“分支”,因此默认情况下,除非明确指定了备用分支,否则所有内容都会推送到master分支。

要了解存储库中所有分支的列表,请输入:git branch



7

您不能remote set-url origin在之后调用git init,因为该git remote set-url命令不会创建源,但会更改现有的远程存储库URL

因此,该命令git remote set-url仅在您克隆了存储库或手动添加了一个称为origin的远程对象时才有效。

您可以使用命令检查remote,git remote -v它会在名称后显示远程url,或者如果该命令给出错误信息(例如fatal: Not a git repository (or any of the parent directories): .git存储库不存在),那么您必须使用command添加origingit remote add

1。 git remote add

该命令用于添加新的遥控器,您可以在存储库目录中的终端上使用此命令。

git remote add命令采用两个参数:

  1. 一个 远程名称,例如,起源
  2. 远程URL,例如,https://github.com/user/repo.git

例如:

git remote add origin https://github.com/user/repo.git

2。git remote set-url

git remote set-url命令更改现有的远程存储库URL。

git remote set-url命令采用两个参数:

  1. 一个现有的远程名。例如,originupstream两个常见选择。
  2. 一个远程新的URL

例如,您可以使用以下git remote set-url命令将远程URL从SSH更改为HTTPS 。

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

您可以使用命令验证远程URL已更改git remote -v

注意: “ origin”是约定,不是命令的一部分。“ origin”是远程存储库的本地名称。您可以使用任何名称代替“起源”。

例如:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

来自github的参考:remote addremote set-url


0

如果您已有项目,并且想添加远程存储库URL,则需要执行以下命令

git init

如果您想添加readme.md文件,则可以创建它并使用以下命令添加它。

git add README.md

使用以下命令进行第一次提交

git commit -m "first commit"

现在您完成了所有本地存储库过程,现在如何添加远程存储库url了?检查以下命令,该命令用于ssh url,您可以将其更改为https。

git remote add origin git@github.com:user-name/repository-name.git

如何推送第一次提交,请参见以下命令

git push -u origin master
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.