git pull之后没有更新存储库

时间:2012-03-24 13:44:36

标签: git capistrano

我已经在存储库远程中使用capistrano进行了部署。

我是git的新手。

现在我想用git更新一些文件并更新我的网站......等等,因为如果我运行新的部署,capistrano会更慢。

对于远程存储库中的更新文件,我已经完成了以下步骤:

git add .

git commit -a -m "changes made"

git push origin master

git pull origin master

但是,如果我在远程存储库中看到文件尚未进行更改 :(。

在最后一步我在控制台中得到了这个结果:

ubuntu@ubuntu:~/Desktop/project$ git pull origin master
user@ip.ip.ip.ip's password: 
From ip.ip.ip.ip:~/project
 * branch            master     -> FETCH_HEAD
Already up-to-date.

使用结果步骤3

进行编辑

在第3步之后我得到:

git push origin master
user@ip.ip.ip.ip's password: 
Counting objects: 110, done.
Compressing objects: 100% (57/57), done.
Writing objects: 100% (71/71), 447.59 KiB, done.
Total 71 (delta 30), reused 0 (delta 0)
To user@ip.ip.ip.ip:~/project
   33b8849..769d87d  master -> master

使用远程服务器中的结构文件夹和capistrano deploy.rb

进行编辑

我有2个目录projectproject.com

第一个是 project ,在此目录中是进行新更改的位置。

此目录有branches config description HEAD hooks info objects refs

第二个目录 project.com 是我的域名文件夹,在这个目录中我有2个目录:

current releases shared

内部发布目录是我的发布项目,通过capistrano部署,目录如下:

20120323164859

并且在 current 里面我有我的rails 3.1 app。

我想查看此目录中所做的更改。

deploy.rb

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load pathe
require "rvm/capistrano"                  # Load RVM's capistrano plugin.
require "bundler/capistrano"
set :rvm_ruby_string, 'ruby-1.9.2-p318@global'  
set :rvm_type, :user
set :application, "project.com"
set :user, 'user'
set :repository,  "#{user}@ip.ip.ip.ip:~/project"

set :scm, :git
set :use_sudo, false
set :keep_releases, 2
set :deploy_to, "~/#{application}"
set :deploy_via, :copy


role :web, "ip.ip.ip.ip"                          # Your HTTP server, Apache/etc
role :app, "ip.ip.ip.ip"                          # This may be the same as your `Web` server
role :db,  "ip.ip.ip.ip", :primary => true # This is where Rails migrations will run
load 'deploy/assets'

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

远程回购是否是任何机会的实际工作副本? Git不会(很容易,默认情况下)推入并更新远程工作副本。你应该总是推到裸仓。

修改

因此,您的实际存储库位于project,这是一个裸存储库,它是您推送的地方。进入此目录并执行git log,假设您的原点设置正确,您将看到更改。

要将更改纳入releases中的某个工作副本,您需要:

  • 使用适当的工具进行部署,例如capistrano(我建议,因为你的发布/当前/共享目录结构是rails项目的常见,你正在做什么?)
  • 进入其中一个版本目录,只需git pull origin [branchname]

答案 1 :(得分:0)

我不明白你的问题。你是什​​么意思“尚未做出改变”?你只是推动了你的更改,因此当你拉动时,什么都不会发生,你已经有了最新的代码。