tom*_*opp 9 ruby git bundler gemfile.lock
我正在努力的rails应用程序上遇到这个问题.我正在开发一个功能分支,并希望从最新的主人那里重新定义.我运行了以下命令:
$ git checkout master
$ git pull --rebase
Run Code Online (Sandbox Code Playgroud)
如果我尝试检出我的功能分支,我会收到以下错误:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Gemfile.lock
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令将Gemfile.lock解析回aster,但没有一个成功:
$ git checkout -- Gemfile.lock
$ git stash
$ git reset HEAD --hard
Run Code Online (Sandbox Code Playgroud)
每次我运行一个新的git命令时,我都会回到Gemfile.lock,其中的更改没有为commit提交.
以下是我正在使用的以下版本的库:
$ git --version => 2.3.3
$ bundler --version => 1.7.9
Run Code Online (Sandbox Code Playgroud)
Mat*_*son 27
必须有一些进程在后台运行,或者在shell中执行git命令的一些副作用正在修改Gemfile.lock.
我不熟悉rvm的魔法(虽然听起来似乎有道理); 这里有一些其他要检查的事情:
spring stop
(或bin/spring stop
或bundle exec spring stop
)以优雅地终止该进程..git/hooks
目录.git
可能是shell中另一个命令的别名.运行alias
以查看shell别名列表..bashrc
或.bash_profile
.有时,运行rails命令或其他bundle exec命令会默默地更新您的Gemfile.lock。我猜你在 git 命令之间的某个时候会这样做。或者你安装了一些奇怪的东西,它在无形中做到了这一点。
(rvm 可以无形地做到这一点吗?我不知道。我认为 rvm 会做各种奇怪的事情并且不要使用它。)。
无论如何,发生这种情况的事实可能是其他事情发生的证据,而这并不是您想要的 - 您确定您尝试一起提交的 Gemfile 和 Gemfile.lock 实际上是兼容的吗?通常,每当 Gemfile 发生任何更改时,明智的做法是运行捆绑安装来获取新的 Gemfile.lock。如果您尝试提交实际上与 Gemfile 不兼容的 Gemfile.lock...我不确定您为什么要这样做,通常我希望任何给定提交中的 Gemfile 和 Gemfile.lock兼容的。
要了解为什么某些(神秘的)可能会更改 Gemfile.lock 的线索,请对 Gemfile.lock 执行 git diff 以查看它是如何更改的?
归档时间: |
|
查看次数: |
2702 次 |
最近记录: |