如何在.gitignore中指定路径?

问题描述 投票:0回答:2

我正在开发一个Ruby on Rails应用程序,使用git在利益相关者之间同步代码。该应用程序具有发送电子邮件的能力。每个利益相关者都有自己的SMTP提供程序,在安装过程中在config/initializers/smtp.rb中定义。

ActionMailer::Base.smtp_settings = {
    address: "smtp.emailme.com",
    port: 587,
    domain: "emailme.com",
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: "[email protected]",
    password: "Password"
    }

.gitignore文件定义为:

*.rbc
capybara-*.html
.rspec
/log
/tmp
/public/system
/coverage/
/spec/tmp
**.orig
rerun.txt
pickle-email-*.html

## Environment normalization:
/.bundle
/vendor/bundle

# these should all be checked in to normalize the environment:
# Gemfile.lock, .ruby-version, .ruby-gemset
Gemfile~

config/initializers/smtp.rb

.gitignore文件在Github和我的计算机上是相同的。我试图指明

配置/初始化/ smtp.rb

要么

/config/initializers/SMTP.日本

但无论如何,我的计算机上的smtp.rb文件被Github上的文件覆盖。反过来也是如此。我错过了什么?

ruby-on-rails git
2个回答
1
投票

正如@oliver所提到的,该文件不应该存在于git上。您可以通过执行从git中删除该文件

git rm --cached config/initializers/smtp.rb
git commit -m "Removed config file from repo"
git push

请注意--cached,这是非常重要的,否则你可能会丢失你本地目录中的文件。此选项将仅从repo中删除该文件。

如果要将目录添加到Remove directory from remote repository after adding them to .gitignore,请参阅:.gitignore

谢谢!


0
投票

.gitignore会告诉git忽略当前没有被git跟踪的文件的更改。

运行git rm --cached config/initializers/smtp.rb以阻止git跟踪文件的未来更改。

使用虚拟值创建config/initializers/smtp.template.rb,并提交+推送您的更改。

指导任何新的利益相关者运行cp config/initializers/smtp.template.rb config/initializers/smtp.rb并在设置开发环境时更新文件。

© www.soinside.com 2019 - 2024. All rights reserved.