2012-11-28 114 views
2

我尝试启动我的localhost:3000 RoR应用程序。 什么是发生在终端:Gemfile语法错误:<<<<<<<试图启动本地主机时的头部

[omrails]$rails s 
Gemfile syntax error: 
<<<<<<< HEAD 
^ 

我试着在谷歌和#2搜索,但没有看到与我相似的任何问题。我假设ny Gemfile出了问题,但我不知道究竟是什么。

我的Gemfile看起来是这样的:

source 'https://rubygems.org' 

gem 'rails', '3.2.8' 
gem 'bootstrap-sass' 
gem 'devise' 
gem 'omniauth' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 


group :development do 
gem 'sqlite3' 
end 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
gem 'sass-rails', '~> 3.2.3' 
gem 'coffee-rails', '~> 3.2.1' 

# See https://github.com/sstephenson/execjs#readme for more supported runtimes 
# gem 'therubyracer', :platforms => :ruby 

gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

group :production do 
gem 'pg', '0.12.2' 
end 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 

任何建议,什么可能是错误的,我的Gemfile? 如果您有任何其他问题或需求,请不要犹豫,问我。

回答

5

此区域:

<<<<<<< HEAD 
group :development do 
gem 'sqlite3' 
end 
======= 
# gem 'sqlite3' 

>>>>>>> 154ef24b95ea600ced834457e146c2fb27a18156 

是一个git合并冲突。它表示当前版本(HEAD)和您提交的另一个提交(154ef24b95ea600ced834457e146c2fb27a18156)都发生了变化。文件内容不同的内容会在每个区域提供,供您阅读。

当你得到像这样的冲突(通常是通过运行git mergegit rebase,或git pull),那么你就应该实际上修复git add将其标记为解决之前的冲突。您可以通过查看由=======分隔的两个区域并决定保留哪个区域来执行此操作。

有时你必须决定如何将两者合并为一个可以做这两种更改的方法,但在这种情况下,您可能只想丢掉注释掉的部分。如果您删除以<<<<<<<开头的行以及========>>>>>>>>行之间的所有行(包括这两行),那么您应该很好。

研究git merge和rebase程序可能并不会伤害 - 它们功能强大,但如果您不熟悉可能会有点复杂。

+0

好吧,我决定在我的Gem文件中保留'group:development做 gem'sqlite3' end',我删除了'<<<<<<< HEAD'和'======= #gem 'sqlite3' >>>>>>> 154ef24b95ea600ced834457e146c2fb27a18156'部分,然后我在终端中运行'git add .',然后当我尝试启动我的本地主机时,我得到'$ rails s Gemfile中有错误,并且Bundler无法继续。“我对此很新,所以请给我写详细内容:) –

+0

@IlliaStrikhar添加完成后,您也需要提交。 – alex

+0

@alex我承诺,仍然没有成功:'[omrails] $ git commit -m“init” [master ae46cda] init 1个文件已更改,1个插入(+),0个删除( - ) [ s 您的Gemfile中有错误,Bundler无法继续.' –

1

您在Git中犯下了合并冲突的结果。

您需要删除这些行,并特别注意确保代码是您所期望的。

<<<<<<< HEAD 
group :development do 
gem 'sqlite3' 
end 
======= 
# gem 'sqlite3' 

>>>>>>> 154ef24b95ea600ced834457e146c2fb27a18156 

你可以看到什么是你当前HEAD,什么是154ef24b在合并的时间。通过删除冲突标记并保持/修改任何一方的组块来选择您想要解决的方式。

+0

更好的建议是,我认为“重新合并源代码并使用可视化合并工具来解决冲突” –

+0

仍然无效,请参阅上面的我的评论。 –

+0

发布您的整个Gemfile,我们将发布一个固定的版本 –

0

正如亚历克斯说的,你已经犯了git合并冲突的结果。当他说要​​密切关注代码是你所期望的时,你需要更多细节。你不想删除冲突标记(< < < < < <,==========和>>>>>>>>>>>),你需要实际解决冲突。

HEAD了,当你做了合并如下:

group :development do 
gem 'sqlite3' 
end 

包含提交你(154ef24b95)合并,你曾和分支:

# gem 'sqlite3' 

这(出现)的意思当合并完成时HEAD在开发中使用sqlite并且提交154ef24b95已经决定不要。你一定想知道你在你的项目中实际需要哪个版本。不要只删除冲突标记。

+0

仍然没有工作,请参阅我上面的评论。 –

相关问题