【问题标题】:Merge conflict Gemfile.lock合并冲突 Gemfile.lock
【发布时间】:2017-03-04 21:43:44
【问题描述】:

我有合并冲突并且知道冲突,但对如何解决它感到困惑。

<<<<<<< HEAD
   orm_adapter (0.5.0)
=======
   arser (2.3.1.4)
     ast (~> 2.2)
>>>>>>> master

<<<<<<< HEAD
warden (1.2.6)
  rack (>= 1.0) 
=======
unicode-display_width (1.1.1)
>>>>>>> master

我是否只是将冲突 gem 添加到 gem 文件中?

【问题讨论】:

  • @AndreyDeineko 这是一个糟糕的建议,除非这是一个全新的项目,或者 OP 在 Gemfile 中指定 gem 版本时非常小心。
  • 作为一个好的做法,不建议将 Gemfile.lock 添加到 git,因为无论如何它会在每次运行 bundle install 时创建
  • @uDaY 这绝对不是最佳实践。这将导致每个开发人员在他们的开发机器上安装一组不同的 gem 版本。此外,这会导致您的服务器安装的 gem 版本与您正在开发的版本不同。

标签: ruby-on-rails github gemfile.lock


【解决方案1】:

您不想删除 Gemfile.lock。您应该做的是重置锁定文件,然后再次捆绑。

git checkout Gemfile.lock
bundle

如果您删除了锁定文件和捆绑包,您很可能会升级应用中的大量 gem。即使你已经做好了pessimistic versioning,你仍然会升级补丁版本,这是你不想因为合并冲突而做的事情。

另外,关于不将锁定文件添加到 git 的想法,不要这样做。这样做会导致每个开发人员在他们的开发机器上安装一组不同的 gem 版本。此外,这会导致您的服务器安装的 gem 版本与您正在开发的版本不同。

所有这一切都是在对Gemfile 进行任何更改之前将锁定文件重置为其状态。运行包将添加(到锁定文件)任何添加到 Gemfile 的 gem。但是,它不会更改锁定文件中的任何其他 gem。如果您删除锁定文件,它将基于Gemfile 生成一个全新的锁定文件,该文件将具有允许的最新 gem 版本(当前除非 Gemfile 中有任何版本控制)。

【讨论】:

  • 所以。一旦我运行该命令,我就不必担心其他团队会遇到不正确的 Gemfile.lock 问题?
  • 正确。我也为答案添加了解释。
猜你喜欢
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2019-10-18
  • 2020-02-28
  • 2011-08-20
  • 2011-03-13
  • 2017-07-24
相关资源
最近更新 更多