Gemfile.lock 包含合并冲突

Posted

技术标签:

【中文标题】Gemfile.lock 包含合并冲突【英文标题】:Gemfile.lock contains merge conflicts 【发布时间】:2014-12-14 18:45:05 【问题描述】:

我刚刚运行 git push origin master 并在尝试运行 rails s 后收到此错误:

Your Gemfile.lock contains merge conflicts.
Run `git checkout HEAD -- Gemfile.lock` first to get a clean lock.

git checkout HEAD --Gemfile.lockbundlebundle installbundle 更新均无助于解决此问题。有谁知道如何解决这个问题?

宝石文件:

source 'https://rubygems.org'

ruby "2.1.2"
gem 'devise'

gem 'twilio-ruby', '~> 3.12'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0.beta2'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0.0.beta1'
# Use Uglifier as compressor for javascript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes

# Use jQuery as the JavaScript library
gem 'jquery-rails', '~> 4.0.0.beta2'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc


group :development, :test do
  # Call 'debugger' anywhere in the code to stop execution and get a debugger console
  gem 'pry-byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0.0.beta4'

  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

Gemfile.lock:

GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activejob (= 4.2.0.beta2)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 1.0, >= 1.0.3)
    actionpack (4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      rack (~> 1.6.0.beta)
      rack-test (~> 0.6.2)
      rails-dom-testing (~> 1.0, >= 1.0.3)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    actionview (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      builder (~> 3.1)
      erubis (~> 2.7.0)
      rails-dom-testing (~> 1.0, >= 1.0.3)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    activejob (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      globalid (>= 0.3.0)
    activemodel (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      builder (~> 3.1)
    activerecord (4.2.0.beta2)
      activemodel (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      arel (>= 6.0.0.beta1, < 6.1)
    activesupport (4.2.0.beta2)
      i18n (>= 0.7.0.beta1, < 0.8)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.1)
      tzinfo (~> 1.1)
    addressable (2.3.6)
    arel (6.0.0.beta1)
    binding_of_caller (0.7.3.pre1)
      debug_inspector (>= 0.0.1)
    buftok (0.2.0)
    builder (3.2.2)
    byebug (3.5.1)
      columnize (~> 0.8)
      debugger-linecache (~> 1.2)
      slop (~> 3.6)
    coderay (1.1.0)
    coffee-rails (4.0.1)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.3.0)
      coffee-script-source
      execjs
    coffee-script-source (1.8.0)
    columnize (0.8.9)
    debug_inspector (0.0.2)
    debugger-linecache (1.2.0)
    equalizer (0.0.9)
    erubis (2.7.0)
    execjs (2.2.2)
    faraday (0.9.0)
      multipart-post (>= 1.2, < 3)
    globalid (0.3.0)
      activesupport (>= 4.1.0)
    hike (1.2.3)
    http (0.6.2)
      http_parser.rb (~> 0.6.0)
    http_parser.rb (0.6.0)
    i18n (0.7.0.beta1)
    jbuilder (2.2.2)
      activesupport (>= 3.0.0, < 5)
      multi_json (~> 1.2)
    jquery-rails (4.0.0.beta2)
      rails-dom-testing (~> 1.0)
      railties (>= 4.2.0.beta, < 5.0)
      thor (>= 0.14, < 2.0)
    json (1.8.1)
    jwt (1.0.0)
    loofah (2.0.1)
      nokogiri (>= 1.5.9)
    mail (2.6.1)
      mime-types (>= 1.16, < 3)
    memoizable (0.4.2)
      thread_safe (~> 0.3, >= 0.3.1)
    method_source (0.8.2)
    mime-types (2.4.2)
    mini_portile (0.6.0)
    minitest (5.4.2)
    multi_json (1.10.1)
    multipart-post (2.0.0)
    naught (1.0.0)
    nokogiri (1.6.3.1)
      mini_portile (= 0.6.0)
    pg (0.17.1)
    pry (0.10.1)
      coderay (~> 1.1.0)
      method_source (~> 0.8.1)
      slop (~> 3.4)
    pry-byebug (2.0.0)
      byebug (~> 3.4)
      pry (~> 0.10)
    rack (1.6.0.beta)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.2.0.beta2)
      actionmailer (= 4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activejob (= 4.2.0.beta2)
      activemodel (= 4.2.0.beta2)
      activerecord (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.2.0.beta2)
      sprockets-rails (~> 3.0.0.beta1)
    rails-deprecated_sanitizer (1.0.3)
      activesupport (>= 4.2.0.alpha)
    rails-dom-testing (1.0.4)
      activesupport (>= 4.2.0.beta, < 5.0)
      nokogiri (~> 1.6.0)
      rails-deprecated_sanitizer (>= 1.0.1)
    rails-html-sanitizer (1.0.1)
      loofah (~> 2.0)
    railties (4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.3.2)
    rdoc (4.1.2)
      json (~> 1.4)
    sass (3.4.6)
    sass-rails (5.0.0.beta1)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2)
      sprockets (~> 2.12)
      sprockets-rails (>= 2.0, < 4.0)
    sdoc (0.4.1)
      json (~> 1.7, >= 1.7.7)
      rdoc (~> 4.0)
    simple_oauth (0.2.0)
    slop (3.6.0)
    spring (1.1.3)
    sprockets (2.12.2)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (3.0.0.beta1)
      actionpack (>= 4.0)
      activesupport (>= 4.0)
      sprockets (~> 2.8)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    turbolinks (2.4.0)
      coffee-rails
<<<<<<< HEAD
    twilio-ruby (3.13.1)
      builder (>= 2.1.2)
      jwt (~> 1.0.0)
      multi_json (>= 1.3.0)
=======
    twitter (5.11.0)
      addressable (~> 2.3)
      buftok (~> 0.2.0)
      equalizer (~> 0.0.9)
      faraday (~> 0.9.0)
      http (~> 0.6.0)
      http_parser.rb (~> 0.6.0)
      json (~> 1.8)
      memoizable (~> 0.4.0)
      naught (~> 1.0)
      simple_oauth (~> 0.2.0)
>>>>>>> 97cefa491ac4217bdee8557c84f3657355f9b049
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    uglifier (2.5.3)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    web-console (2.0.0.beta4)
      activemodel (~> 4.0)
      binding_of_caller (= 0.7.3.pre1)
      railties (~> 4.0)
      sprockets-rails (>= 2.0, < 4.0)

PLATFORMS
  ruby

DEPENDENCIES
  coffee-rails (~> 4.0.0)
  jbuilder (~> 2.0)
  jquery-rails (~> 4.0.0.beta2)
  pg
  pry-byebug
  rails (= 4.2.0.beta2)
  sass-rails (~> 5.0.0.beta1)
  sdoc (~> 0.4.0)
  spring
  turbolinks
<<<<<<< HEAD
  twilio-ruby (~> 3.12)
=======
  twitter
>>>>>>> 97cefa491ac4217bdee8557c84f3657355f9b049
  uglifier (>= 1.3.0)
  web-console (~> 2.0.0.beta4)

【问题讨论】:

进入gemfile并消除冲突... @JoelL 我的 Gemfile 正是我想要的样子。 Gemfile.lock 有一些我从 Gemfile 中删除的东西,但我被告知不要编辑 Gemfile.lock。此外,我一直在频繁提交/推送,这是我第一次遇到错误(虽然文件相同)。 你能发布你的 gemfile.lock 吗? @JoelL 当然!刚刚将两个文件添加到编辑中 【参考方案1】:

所以你的Gemfile.lock 充满了未解决的合并冲突。

 GEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activejob (= 4.2.0.beta2)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 1.0, >= 1.0.3)
    actionpack (4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      rack (~> 1.6.0.beta)
      rack-test (~> 0.6.2)
      rails-dom-testing (~> 1.0, >= 1.0.3)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    actionview (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      builder (~> 3.1)
      erubis (~> 2.7.0)
      rails-dom-testing (~> 1.0, >= 1.0.3)
      rails-html-sanitizer (~> 1.0, >= 1.0.1)
    activejob (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      globalid (>= 0.3.0)
    activemodel (4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      builder (~> 3.1)
    activerecord (4.2.0.beta2)
      activemodel (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      arel (>= 6.0.0.beta1, < 6.1)
    activesupport (4.2.0.beta2)
      i18n (>= 0.7.0.beta1, < 0.8)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.1)
      tzinfo (~> 1.1)
    addressable (2.3.6)
    arel (6.0.0.beta1)
    binding_of_caller (0.7.3.pre1)
      debug_inspector (>= 0.0.1)
    buftok (0.2.0)
    builder (3.2.2)
    byebug (3.5.1)
      columnize (~> 0.8)
      debugger-linecache (~> 1.2)
      slop (~> 3.6)
    coderay (1.1.0)
    coffee-rails (4.0.1)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.3.0)
      coffee-script-source
      execjs
    coffee-script-source (1.8.0)
    columnize (0.8.9)
    debug_inspector (0.0.2)
    debugger-linecache (1.2.0)
    equalizer (0.0.9)
    erubis (2.7.0)
    execjs (2.2.2)
    faraday (0.9.0)
      multipart-post (>= 1.2, < 3)
    globalid (0.3.0)
      activesupport (>= 4.1.0)
    hike (1.2.3)
    http (0.6.2)
      http_parser.rb (~> 0.6.0)
    http_parser.rb (0.6.0)
    i18n (0.7.0.beta1)
    jbuilder (2.2.2)
      activesupport (>= 3.0.0, < 5)
      multi_json (~> 1.2)
    jquery-rails (4.0.0.beta2)
      rails-dom-testing (~> 1.0)
      railties (>= 4.2.0.beta, < 5.0)
      thor (>= 0.14, < 2.0)
    json (1.8.1)
    jwt (1.0.0)
    loofah (2.0.1)
      nokogiri (>= 1.5.9)
    mail (2.6.1)
      mime-types (>= 1.16, < 3)
    memoizable (0.4.2)
      thread_safe (~> 0.3, >= 0.3.1)
    method_source (0.8.2)
    mime-types (2.4.2)
    mini_portile (0.6.0)
    minitest (5.4.2)
    multi_json (1.10.1)
    multipart-post (2.0.0)
    naught (1.0.0)
    nokogiri (1.6.3.1)
      mini_portile (= 0.6.0)
    pg (0.17.1)
    pry (0.10.1)
      coderay (~> 1.1.0)
      method_source (~> 0.8.1)
      slop (~> 3.4)
    pry-byebug (2.0.0)
      byebug (~> 3.4)
      pry (~> 0.10)
    rack (1.6.0.beta)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.2.0.beta2)
      actionmailer (= 4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      actionview (= 4.2.0.beta2)
      activejob (= 4.2.0.beta2)
      activemodel (= 4.2.0.beta2)
      activerecord (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.2.0.beta2)
      sprockets-rails (~> 3.0.0.beta1)
    rails-deprecated_sanitizer (1.0.3)
      activesupport (>= 4.2.0.alpha)
    rails-dom-testing (1.0.4)
      activesupport (>= 4.2.0.beta, < 5.0)
      nokogiri (~> 1.6.0)
      rails-deprecated_sanitizer (>= 1.0.1)
    rails-html-sanitizer (1.0.1)
      loofah (~> 2.0)
    railties (4.2.0.beta2)
      actionpack (= 4.2.0.beta2)
      activesupport (= 4.2.0.beta2)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.3.2)
    rdoc (4.1.2)
      json (~> 1.4)
    sass (3.4.6)
    sass-rails (5.0.0.beta1)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2)
      sprockets (~> 2.12)
      sprockets-rails (>= 2.0, < 4.0)
    sdoc (0.4.1)
      json (~> 1.7, >= 1.7.7)
      rdoc (~> 4.0)
    simple_oauth (0.2.0)
    slop (3.6.0)
    spring (1.1.3)
    sprockets (2.12.2)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (3.0.0.beta1)
      actionpack (>= 4.0)
      activesupport (>= 4.0)
      sprockets (~> 2.8)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    turbolinks (2.4.0)
      coffee-rails
    twilio-ruby (3.13.1)
      builder (>= 2.1.2)
      jwt (~> 1.0.0)
      multi_json (>= 1.3.0)

    twitter (5.11.0)
      addressable (~> 2.3)
      buftok (~> 0.2.0)
      equalizer (~> 0.0.9)
      faraday (~> 0.9.0)
      http (~> 0.6.0)
      http_parser.rb (~> 0.6.0)
      json (~> 1.8)
      memoizable (~> 0.4.0)
      naught (~> 1.0)
      simple_oauth (~> 0.2.0)
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    uglifier (2.5.3)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    web-console (2.0.0.beta4)
      activemodel (~> 4.0)
      binding_of_caller (= 0.7.3.pre1)
      railties (~> 4.0)
      sprockets-rails (>= 2.0, < 4.0)

PLATFORMS
  ruby

DEPENDENCIES
  coffee-rails (~> 4.0.0)
  jbuilder (~> 2.0)
  jquery-rails (~> 4.0.0.beta2)
  pg
  pry-byebug
  rails (= 4.2.0.beta2)
  sass-rails (~> 5.0.0.beta1)
  sdoc (~> 0.4.0)
  spring
  turbolinks
  twilio-ruby (~> 3.12)
  twitter
  uglifier (>= 1.3.0)
  web-console (~> 2.0.0.beta4)

我刚刚删除了冲突。您应该能够将上面的代码添加到您的 Gemfile.lock 中,一切都应该没问题。

当你看到这个时:

<<<<<<< HEAD
  twilio-ruby (~> 3.12)
=======
  twitter
>>>>>>> 97cefa491ac4217bdee8557c84f3657355f9b049

在您的代码中,这意味着您遇到了合并冲突。

【讨论】:

强烈推荐以下答案 - 如果您在 Gemfile.lock 中发现问题,请通过bundle install 解决它们,不要弄乱锁定文件 @JarvisJohnson running bundle install 说要运行'Run git checkout HEAD -- Gemfile.lock' 是的,这就是我的意思@RickS - 按照bundle install 的说明操作,而不是尝试手动编辑锁定文件【参考方案2】:

您可以编辑 Gemfile.lock 以手动消除冲突

http://rubyinrails.com/2013/12/what-is-gemfile-lock/

【讨论】:

【参考方案3】:

在任何分支中使用的 Gem 都应该已添加到 Gemfile。因此,您可以使用以下命令签出最新的干净 Gemfile.lock:

git checkout HEAD -- Gemfile.lock

然后运行 ​​bundle install 安装必要的 gem 并重新生成 Gemfile.lock

【讨论】:

【参考方案4】:

您的 Gemfile.lock 应该基于您当前的 Gemfile。它应该通过运行生成

bundle install.

手动编辑既费时又容易出错。我建议采用以下方法。

首先,运行:

git checkout HEAD -- Gemfile.lock

让自己获得一个“干净”的 Gemfile.lock,因为没有它你将无法使用 bundle install。

如果由于某种原因这不起作用并且您仍然无法运行 bundle install 我会简单地从 gemfile.lock 中删除所有内容以修复合并冲突。

第二,运行:

bundle install

这将根据您的 Gemfile 重新生成您的 Gemfile.lock。然后,您可以添加文件并提交您的更改。

【讨论】:

以上是关于Gemfile.lock 包含合并冲突的主要内容,如果未能解决你的问题,请参考以下文章

Gemfile.lock 是不是应该包含在 .gitignore 中?

Ruby on Rails 中的 Gemfile 和 Gemfile.lock 有啥区别

理解 Gemfile.lock:删除 Gemfile.lock 然后再次运行 bundle install 可以吗?

git 和 Gemfile.lock 的问题

Gemfile.lock 在 Rails 中使用?

了解 Gemfile.lock 文件