Gemfile语法错误:<<<<<<<< HEAD在尝试启动localhost时

时间:2012-11-28 00:37:41

标签: ruby-on-rails macos git terminal gemfile

我尝试启动我的localhost:3000 RoR应用程序。 终端发生了什么:

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

我尝试在Google和Stackoverflow上搜索,但没有发现任何与我类似的问题。我假设ny Gemfile有问题,但我不知道到底是什么。

My 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中可能有什么问题吗? 如果您有任何其他问题或要求,请不要犹豫,问我。

3 个答案:

答案 0 :(得分:5)

这个地区:

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

>>>>>>> 154ef24b95ea600ced834457e146c2fb27a18156

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

当您遇到这样的冲突时(通常是通过运行git mergegit rebasegit pull),那么假设实际在执行git add标记为已解决之前修复冲突。您可以通过查看由=======分隔的两个区域来确定要保留的区域。

有时你必须决定如何将两者合并为一个能够完成两项修改的内容,但在这种情况下,你可能只是想扔掉已注释掉的部分。如果你删除以<<<<<<<开头的行,以及========>>>>>>>>行之间的所有行,那么你应该好好去。

一般来说研究git merge和rebase程序可能没有什么坏处 - 它们很强大但如果你不熟悉可能会有点复杂。

答案 1 :(得分:1)

您已在Git中提交了合并冲突的结果。

您需要删除这些行,并特别注意确保代码符合您的预期。

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

>>>>>>> 154ef24b95ea600ced834457e146c2fb27a18156

您可以查看当前HEAD中的内容以及合并时154ef24b中的内容。通过删除冲突标记并保留/修改任何一方的块来选择解决方法。

答案 2 :(得分:0)

正如亚历克斯所说,你已经在git中提交了合并冲突的结果。当他说要​​密切关注代码是你所期望的时候,你需要更多关于他的意思的细节。您不希望仅删除冲突标记(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;,==========,&gt;&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt;),您需要实际解决冲突。

进行合并后,

HEAD有以下内容:

group :development do  
gem 'sqlite3'
end

在包含您在(154ef24b95)合并的提交的分支中,您有:

# gem 'sqlite3'

这(似乎)意味着当合并完成时HEAD在开发中使用sqlite并且提交154ef24b95已经决定不这样做。你肯定想知道你在项目中真正想要的版本。不要只删除冲突标记。