为什么Git会提交到错误的存储库?

时间:2012-11-19 01:49:43

标签: git github

我在Michael Hartl的Ruby on Rails教程的第2章中,我在命令行中输入以下内容:

$ git init 
$ git add .
$ git commit -m "Initial commit"
$  git remote add github https://github.com/themaktravels/demo_app.git

fatal: remote github already exists.

$ git push -u github master

Username: 
Password: 

To https://github.com/themaktravels/first_app.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/themaktravels/first_app.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the 
'Note about fast-forwards' section of 'git push --help' for details.

我注意到之前我发现了一个致命的错误,注意到Github存在,但我认为这没关系,因为我之前在不同的存储库中提交了Git。我注意到,当我$ git push -u Github master时,结果是git试图在错误的存储库(first_app.git)中提交而不是新创建的存储库(demo_app.git)。为什么会这样?

在尝试提交之前,我输入了以下内容:

$ cd ~/rails_projects
$ rails new demo_app
$ cd demo_app

然后编辑我的gem文件,一切似乎都很好。直到我遇到这个git问题。有什么建议?谢谢。

3 个答案:

答案 0 :(得分:1)

问题在于:

$  git remote add github https://github.com/themaktravels/demo_app.git

fatal: remote github already exists.

如果您已有一个名为github的遥控器,则git remote add命令不会更改现有设置。使用git remote -v查看您当前的遥控器及其指向的位置。我怀疑你已经有一个名为github的遥控器指向https://github.com/themaktravels/first_app.git

答案 1 :(得分:1)

你已经有一个名为“github”的遥控器,它指向first_app,所以当你尝试添加指向demo_app的新遥控器时,它会失败。

看起来您正在尝试在已存在且已有远程存储库的存储库中初始化Git。确保在新目录中执行此操作。

答案 2 :(得分:0)

  

为防止您丢失历史记录,我们拒绝了非快进更新   在再次推送之前合并远程更改(例如'git pull')。

就像它试图告诉你的那样,推送正试图导致非快进更新。