我想跟随Michael Hartl的Rails教程,但遇到了一个错误。
我在GitHub注册了账户,生成了一个新的SSH密钥,并创建了一个新的代码库。但当我在终端中输入下一行命令时,出现了以下错误:
Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.
想知道是否有其他人遇到过这个问题?
我想跟随Michael Hartl的Rails教程,但遇到了一个错误。
我在GitHub注册了账户,生成了一个新的SSH密钥,并创建了一个新的代码库。但当我在终端中输入下一行命令时,出现了以下错误:
Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.
想知道是否有其他人遇到过这个问题?
简短版本:
你只需要更新现有的远程:
git remote set-url origin git@github.com:ppreyer/first_app.git
长版本:
正如错误信息所指示的那样,已经有一个使用相同名称的远程配置。因此,您可以选择使用不同的名称添加新的远程配置,或者如果您不需要它,更新现有的远程配置。
要添加一个名为github
的新远程配置(而不是已经存在于您的系统中的origin
),请按照以下步骤进行:
git remote add github git@github.com:ppreyer/first_app.git
$ git push origin master
现在应该是$ git push github master
。origin
远程仓库,你可以执行$ git remote -v
命令。如果你认为这是某种错误导致的,你可以像下面这样更新它:git remote set-url origin git@github.com:ppreyer/first_app.git
git remote -v
输出什么?另外,你能试一下 git push origin master
吗? - Agisgit remote rm origin
没有完全生效。它产生了一个错误:无法删除配置部分“remote.origin”。 - Andrew Savinykhgit remote set-url --add origin git@github.com/username/repo.git
命令可以添加远程仓库的地址。 - eduncan911这个有效:
git remote rm origin
git remote add origin git@github.com:username/myapp.git
首先要做的是:
git remote rm origin
git remote add origin https://github.com/your_user/your_app.git
然后瞧!对我起作用了!
你可以通过以下方式查看你已经配置连接到的远程代码库:
git remote -v
这将以以下格式返回一个列表:
origin git@github.com:github/git-reference.git (fetch)
origin git@github.com:github/git-reference.git (push)
这可能帮助您弄清原始“origin”指向的内容。
如果您想保留使用-v看到的远程连接,但仍想按照Rails教程的步骤操作,而不必记住您所选教程中存储库的名称(例如github或其他名称),您可以使用以下命令将其他存储库重命名:
git remote rename [current name] [new name]
就像这样:
git remote rename origin oldrepo
你应该能够继续你的教程。
然后你应该能够继续你的教程。
如果你遇到了“fatal: remote origin already exists.”这个错误,或者在尝试删除origin时遇到了“error: could not remove config section remote.origin”错误,那么你需要手动设置origin。
Windows的POSH~Git for Windows PowerShell(以及GitHub for Windows应用程序)存在此问题。
就像我经常做的那样,当我设置我的octopress时,我再次遇到了这个问题。下面是我是如何解决它的:
首先,请检查你的远程仓库:
C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress https://github.com/imathis/octopress.git (fetch)
octopress https://github.com/imathis/octopress.git (push)
origin
首先要注意我的来源没有网址。任何试图删除、重命名或其他操作都会失败。
因此,需要手动更改网址:
git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git
然后您可以通过再次运行git remote -v
来确认它是否起作用:
C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress https://github.com/imathis/octopress.git (fetch)
octopress https://github.com/imathis/octopress.git (push)
origin https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin https://github.com/eduncan911/eduncan911.github.io.git (push)
这已经修复了我遇到的数十个 git 存储库的问题,包括 GitHub、BitBucket、GitLab 等。
如果你是从一个旧的作为模板使用过的仓库创建新仓库(如果这不是你的情况,请勿这样做),则需要完全删除旧仓库的git文件,以便开始一个新的仓库:
rm -rf .git
然后像往常一样重新初始化一个新的 git 代码库:
git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin git@github.com:ppreyer/first_app.git
git push -u origin master
如果原始文件已经存在,使用此命令更新原始文件
git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
如果您需要检查已连接到本地仓库的远程仓库,请使用以下命令:
git remote -v
现在如果您想删除远程仓库(比如说,origin),则可以执行以下操作:
git remote rm origin
在远程推送代码时我遇到了 Bitbucket 的问题。
请按照以下步骤操作:
步骤一:更新现有的远程代码库
git remote set-url origin https://pratik@bitbucket.org/pratik/demoapp.git
步骤二:使用此命令可以强制服务器使用本地存储库的更改。远程存储库代码将被替换为您的本地存储库代码。
git push -f origin master
-f
通常情况下,该命令不会更新一个远程引用,如果该引用不是被用来覆盖它的本地引用的祖先。
remote
这个概念就是你远程仓库的URL。
origin
是指向该URL的别名。因此,我们不必每次想推送内容到我们的仓库时都要写完整的URL,只需使用此别名并运行:
git push -u origin master
告诉Git将我们的代码从本地master分支推送到remote origin仓库中。
无论何时我们克隆一个仓库,Git都会默认为我们创建此别名。同时,我们自己创建一个新仓库时也可以自己设置别名。
无论什么情况,我们总是可以通过运行以下命令将此名称更改为任何喜欢的名称:
git remote rename [current-name] [new-name]
由于存储在客户端的git应用程序(我们的计算机)上,更改它不会影响我们的开发过程,也不会影响我们的远程代码库。请记住,它只是指向一个地址的名称。
通过重新命名别名唯一要改变的事情就是每次我们推送到仓库时都需要声明这个新名称。
git push -u my-remote-alias master
显然,单个名称不能指向两个不同的地址。这就是为什么你会收到此错误消息的原因。在本地计算机上已经有一个名为origin
的别名。要查看您有多少个别名以及它们是什么,请执行以下命令:
git remote -v
git remote rm my-remote-alias
愉快编码。
.git/config
文件,看看是否尚未声明origin。 - Denys Séguret