2012-11-28 233 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

仍然沒有工作,請參閱我上面的評論。 –

相關問題