2011-03-25 79 views
5

當我在我的分支上我'git status',我經常看到「修改:Gemfile.lock」,但我從來沒有碰過這個文件,爲什麼git總是告訴我它被修改了?「修改:Gemfile.lock」,爲什麼?

我正在Ubuntu機器下開發Rails 3應用程序。

回答

9

我想,那是因爲你跑

bundle install 

它會改變Gemfile.lock的告訴正是你的項目使用的每顆寶石的版本,這樣,當東西壞了,你可以追溯的是什麼版本你之前使用的寶石。

+2

而且更重要的是,這樣如果你運行「捆綁安裝」另一臺機器上,它會安裝存在您的開發機器上非常相同的版本。 – 2011-03-25 11:21:23

3

在Mac OS和Ubuntu上開發時,我看到了同樣的情況。 當我拉的代碼有Gemfile.lock的的Mac機器上創建Ubuntu的機器,並在運行軌道服務器後,我得到Gemfile.lock的修改:

diff --git a/Gemfile.lock b/Gemfile.lock 
index 7fcc61b..5f06101 100644 
--- a/Gemfile.lock 
+++ b/Gemfile.lock 
@@ -113,7 +113,7 @@ GEM 
    faraday (0.5.3) 
     addressable (~> 2.2.2) 
     multipart-post (~> 1.0.1) 
-  rack (>= 1.1.0, < 2) 
+  rack (< 2, >= 1.1.0) 
    formtastic (1.2.3) 
     actionpack (>= 2.3.7) 
     activesupport (>= 2.3.7) 
@@ -126,9 +126,9 @@ GEM 
     haml (~> 3.0) 
     railties (~> 3.0) 
    heroku (1.13.7) 
-  json_pure (>= 1.2.0, < 1.5.0) 
+  json_pure (< 1.5.0, >= 1.2.0) 
     launchy (~> 0.3.2) 
-  rest-client (>= 1.4.0, < 1.7.0) 
+  rest-client (< 1.7.0, >= 1.4.0) 
    heroku_san (1.0.7) 
     heroku 
    hpricot (0.8.3) 

貌似沒有本質的變化,只是重新排序版本的約束。但很煩人。 我通常

git checkout -- Gemfile.lock 
+1

我有同樣的問題。沒有運行'bundle',我在Gemfile.lock中改變了(對我來說它只是'json_pure''(> = 1.2.0,<1.5.0)'vs'(< 1.5.0, > = 1.2.0)')。前段時間我已經閱讀了一篇關於它的博客文章,但是當時忽略了它。現在我有同樣的問題,我似乎無法找到它:/ – 2011-04-01 08:15:01

+0

這是一個Bundler問題。它已在1.0.11版中修復(在安裝此版本後,我不再有這個問題)。 – 2011-04-06 11:31:49

+0

我仍然看到Bundler版本1.1.5的問題。 – 2013-02-12 19:18:49

相關問題